
Queries in Snowflake try to use the entire standard warehouse. So what happens when we’re running dozens of queries on the same warehouse at the same time, and each of those queries is attempting to use all of the resources…

The variety and number of ways that people test performance on Snowflake incorrectly continues to amaze me. I don’t think that testing the performance of a query in isolation is difficult, but it requires a very scientific approach. We need…

The age of AI may be here, but there are still some things an LLM does better than others. There have been different levels of automation or autonomics added to the systems I work with my whole career. With LLMs,…

Join explosions in Snowflake can cause significant performance problems. I thought I’d spend some time digging into specific examples of cases where join explosions happen and how to work around the explosion in those examples. Disjunct Join Predicates What is…

Hints have been a thing in database engines for years. I’ve always seen them as an absolute last resort, but have used them on other platforms. In general, Snowflake has not had customer configured hints. But like any optimizer, sometimes…

At work, I read a lot of customer-written SQL. This is a major part of my day job, and there are some underrated things that I regularly recommend. The ANY_VALUE() function is one of these things. The ANY_VALUE() Function The…

I am a fan of the result set cache in Snowflake. It is one of three layers of caching, and can be a reliable way to mitigate the impact of repeated queries when the underlying tables are fairly slow to…

In a recent series of articles, I walked through the query optimizer. I’ve also covered using EXPLAIN to look at queries. One of the primary disadvantages of EXPLAIN is that it does not execute the query, and is therefore missing…

While a query id is a small and simple piece of information, knowing how to find and use query ids is a useful skill in Snowflake.

I’ve recently finished a series on the Snowflake query profile. As a command-line gal at heart, I also want to cover two tools that are more text-based – explain and GET_QUERY_OPERATOR_STATS. I’ll focus on explain in this article, and then…

This article is the fourth in a series about the Snowflake Query Profile. Part 1: Accessing the Query Profile Part 2: The Query Execution Plan Part 3: The Information Panes Part 4: Using the Query Profile to Analyze a Query(this…

This article is the second in a series about the Snowflake Query Profile. Part 1: Accessing the Query Profile Part 2: The Query Execution Plan (this article) Part 3: The Information Panes Part 4: Using the Query Profile to Analyze…