One of the easiest ways to fool yourself in Snowflake is to think you improved a query when all you really did was hit cache.
The query runs once, feels heavy, then runs again and suddenly looks fast. That is when people start congratulating themselves for an optimization that may not have done a damn thing.
That is not tuning. That is misreading the environment.
Cached results are useful. They are also great at lying to you.
Snowflake’s result cache is a good feature. It saves time, reduces compute, and makes repeated access more efficient.
But it is brutal for honest benchmarking.
If you are comparing query performance and one of your runs is pulling from result reuse, you are not measuring the query anymore. You are measuring the fact that Snowflake already did the work once and handed you the answer back. That can make a weak optimization look brilliant and a benchmarking process look far more scientific than it really is.
Fast for you does not mean improved in reality
This is the part that matters.
A lot of teams make “performance improvements” that only seem real in the exact testing session where they made them. Same user, same environment, same reused results. Then the query goes back into normal use and nothing meaningfully changes.
That is because the speedup was never in the logic. It was in the cache behavior.
If you do not eliminate that variable, you are basically running a performance experiment with fake confidence.
Benchmarking without cache discipline is how bad decisions get made
This is not just a technical nitpick. It changes what teams choose to ship.
Once people start trusting cached wins as real wins, they begin approving SQL changes, model changes, and “optimizations” that are not actually earning their keep. That wastes time, creates false learning, and makes teams worse at tuning because they stop distinguishing between genuine improvement and convenient illusion.
That is a bad operating habit, not a harmless mistake.
If you are tuning seriously, test like you mean it
That means turning off result caching when you need a real comparison. It means understanding the query profile. It means refusing to call something faster just because Snowflake returned it instantly the second time.
The point is not to make testing harder. The point is to make it honest.
Because if your query got faster only after Snowflake had already done the work, then your optimization probably did not matter. And if it did not matter, it should not get credit.