
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…

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…

I am a huge fan of testing performance on either the actual production data or a full-sized copy of the data. With every database platform I’ve worked with in a 20+ year career, performance is often excellent at a smaller…

In my day job, I spend a lot of time looking at other peoples’ SQL and helping them make it run faster through a vast array of different techniques. I have been toying lately with seeing if I could take…

While I spend my day job digging into an amazing variety of performance issues, there are some patterns we see over and over again. The first pattern I blogged about was partition pruning. In this article, I’d like to address…

I often start with just a query id and a general description of a performance problem. Almost as often as I’m looking at query profiles or the equivalent in internal tools, I like to see more about the context of…

One of the most basic building blocks of Snowflake query performance is partition pruning. Let’s explore partition pruning, identifying when it is occurring, and why it matters for query performance. Micro-Partitions Snowflake stores data in micro-partitions. Micro-partitions are proprietarily structured…

This was one of my favorite types of blog entries to write when I worked with IBM Db2, and I’d like to revive it for Snowflake queries. I spend a good part of my day job helping people solve SQL…

As someone who regularly makes up scenarios to demonstrate concepts – both professionally and in my free time, I was very used to Db2’s answer to data generation – which is basically either fun with recursive SQL, pay for the…

Every database platform has a way to select from nothing. Sometimes we use it to generate data manually, sometimes we use it to get values of various system functions, but it is important to be able to do. Dummy Table…

As I’ve been learning about Snowflake, at least once a week, I find small things in the SQL or feature set that just make me happy. I really feel like Snowflake is meant for someone who loves SQL, but also…