TL;DR: Query Result Reuse (2019) is Athena being productively lazy: run byte-identical SQL again and it serves the cached result from your S3 results bucket instead of re-scanning. Zero data scanned, tiny S3 GET, instant response. Dashboards, scheduled reports, and monitoring scripts run identical SQL constantly, so the cache hits pile up. It's a workgroup checkbox that costs nothing to enable and quietly cuts the scan bill on every hit.
The numbers
- A QuickSight dashboard on 5 TB opened by 10 users/day: without reuse 50 TB scanned/day ≈ $7,500/mo; with reuse the first user scans, next 9 hit cache ≈ $750/mo.
- Default reuse window (TTL) is 60 minutes; tunable per query from 1 minute to 7 days.
- Field examples: an exec dashboard on 3 TB viewed 50×/day dropped ~$20,000/mo from a checkbox; a Monday 6 AM + 8 AM weekly report on 10 TB went $100→$50/week (the 8 AM run hits cache inside the window).
Do this
- Enable reuse at the workgroup level — it's a single setting, zero setup.
- Raise the max age for stable data — bump to 24 hours (or up to 7 days) for daily reports and dashboards you know won't change that day; almost every repeat becomes a cache hit.
- Standardize SQL formatting — the match is byte-for-byte, so agree on lowercase keywords, consistent whitespace, and templatize common queries in the BI tool so runs are identical. This alone can double the hit rate.
- Pin date literals —
date = '2024-11-15'is reusable;date = CURRENT_DATE - INTERVAL '1' DAYchanges every run and never hits. - Consolidate overlapping teams into a shared workgroup — reuse is workgroup-scoped, so two teams running the same query in different workgroups pay twice.
Gotchas
- "Identical" means exact — different whitespace, comments, capitalization, or aliases all break the match; inconsistent team formatting silently kills the hit rate.
- Table writes invalidate the cache — a new partition or any write drops the cached result (by design, so you never serve stale data).
- Scoped per workgroup — not per user or client, so the same SQL from QuickSight or another account in the same workgroup still hits; a different workgroup does not.
- Confirm it's working — watch "Query reused previous results" in the execution history and track average "Data scanned" trending down.
Skip this if
- Queries must reflect near-real-time state (streaming events, new partitions every few minutes) — Athena detects the table churn and bypasses the cache anyway; it doesn't hurt, it just rarely helps.
- Your queries rarely repeat byte-for-byte — the lever is SQL standardization first, not the cache.
- Your bill is about scan volume per query, not repetition — reach for Athena Partition Projection and Parquet/ORC, which cut the cost of the scans you do run.