
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…

My day job involves working with customers on performance problems. I have worked with dozens of customers and probably hundreds of queries just this year. I’ve been working in this role for more than two years now. What has all…

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…

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.

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…

There are some things about joins in Snowflake that it is interesting to know and to recognize in a query profile. I thought I’d cover a couple of those here. Hash Joins In Problematic Query Patterns in Snowflake: Join Explosion,…

This article is the third 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 (this article) Part 4: Using the Query Profile to Analyze…

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…

One of the things that shocked me when I moved from working with IBM Db2 to working with Snowflake was the fact that actual execution plans were available for every query run. In Db2, you have to run utilities to…

One of the things that fascinates me about SQL is the extreme limits on reserved words, especially when compared with most procedural languages. I’ve written about using reserved words for IBM Db2 and MySQL. I thought I’d explore the issue…

Snowflake doesn’t have a lot of configuration parameters that you can tune for query performance, but there are still a number of aspects and techniques to get better performance. The goal of this series is to explore the basic aspects…

A colleague at Snowflake was working on a white paper recently. In the paper, they stated that querying between different Snowflake databases is no slower or more difficult than querying within a Snowflake database. A non-technical person asked for a…