Skip to main content

TPC-DS

TPC-DS is a modern analytics benchmark with 99 queries over a complex retail schema and realistic data skew. It reports QphDS covering load, query, and data-maintenance phases at large scale factors.

TPC-DS is the Transaction Processing Performance Council's modern analytics benchmark, intended as a richer successor to TPC-H. It models a retail product supplier with store, catalog, and web sales channels and exercises a far broader range of SQL than TPC-H. It is the de facto standard for comparing cloud data warehouses and big-data SQL engines.

What It Measures

TPC-DS reports QphDS@SF, a composite throughput metric at a given scale factor, plus price/performance. The benchmark covers data loading, a power (single-stream) run, two throughput (multi-stream) runs, and data-maintenance operations that simulate ETL. It is built to reflect realistic reporting, ad-hoc, iterative, and data-mining style queries.

Methodology

The schema has 24 tables arranged as multiple snowflake fact-and-dimension structures with shared dimensions — far more complex than TPC-H. The 99 query templates use windowing, rollups, complex subqueries, and approximate constructs; many queries are deliberately hard for optimizers. The dsdgen tool generates data with non-uniform, realistic distributions and skew, and dsqgen instantiates query parameters. Scale factors range from 1 GB to 100 TB and beyond. A compliant run measures load time, query performance under single and concurrent streams, and the cost of incremental data maintenance, then folds them into the composite metric. Runs are audited for official publication.

How to Interpret Results

State the scale factor and the number of concurrent streams; both dominate the result. Because the data has realistic skew and the queries are diverse, TPC-DS rewards robust optimizers and good handling of complex joins and window functions rather than narrow tuning. Many vendors publish unofficial TPC-DS numbers run on cloud warehouses — verify the engine version, cluster size, and whether result caching was disabled. For your own evaluation, generate data with dsdgen at a scale matching your workload and run a representative query subset.

Limitations

The full benchmark is large and operationally demanding, so most reported results are partial or unaudited subsets, which hurts comparability. Some engines do not support all 99 queries without rewriting, and vendors sometimes report only the queries that run well. TPC-DS still targets a relational warehouse model and does not cover streaming, document, graph, or vector workloads. Treat it as the best general analytics yardstick available, with attention to how each result was produced. It nonetheless remains the most demanding standardized test of a relational analytics engine, and progress on its harder queries tracks genuine improvements in query optimization. Practitioners commonly select a representative subset of the 99 queries that matches their reporting style and run it at a scale factor near their production volume.