Anleitungen

TPC-H: was der Benchmark misst und wie Sie ihn ausführen

6 Min. Lesezeit

TPC-H ist der Benchmark für Entscheidungsunterstützung des Transaction Processing Performance Council (TPC): 22 geschäftliche Abfragen und zwei Refresh-Funktionen laufen gegen acht Tabellen, die das TPC-Programm dbgen bei einem gewählten Skalierungsfaktor füllt, wobei Faktor 1 etwa 1 GB entspricht. Seine Kennzahl QphH@Size kombiniert einen Power-Test (ein einzelner Abfragestrom) mit einem Durchsatztest (mehrere Abfrageströme), und offizielle Ergebnisse nennen zusätzlich einen Preis pro kQphH@Size. Nur auditierte, auf tpc.org veröffentlichte Ergebnisse gelten als offiziell; jede außerhalb von tpc.org veröffentlichte Zahl im Stil von TPC-H gilt nach den Fair-Use-Regeln des TPC als abgeleiteter Workload und darf nicht mit offiziellen Ergebnissen verglichen werden.

Wir haben den Benchmark für diesen Leitfaden nicht selbst ausgeführt. Die Fakten stammen von tpc.org, aus der Spezifikation in Revision 3.0.1, die tpc.org als aktuell führt, und aus der Dokumentation der jeweiligen Tools, alles geprüft am 1. November 2026. Die Einschätzungen sind unsere eigenen.

TPC-HTPC-CTPC-DS
WorkloadEntscheidungsunterstützung: Ad-hoc-Abfragen plus DatenaktualisierungenOLTP: Bestellungen eines GroßhändlersEntscheidungsunterstützung: Abfragen plus Datenpflege
Umfang8 Tabellen, 22 Abfragen, 2 Refresh-Funktionen9 Tabellentypen, 5 TransaktionstypenSnowflake-Schema, 7 Faktentabellen, 99 Abfragen
Primäre KennzahlQphH@Size und $/kQphH@SizetpmCQphDS@SF und $/kQphDS@SF
Aktuelle Version3.0.15.11.04.0.0

Was misst TPC-H?

Wie schnell ein System komplexe analytische Abfragen über einen großen Datenbestand beantwortet, während neue Verkäufe eintreffen und alte gelöscht werden. Eine einzige Spezifikation legt Schema, Abfragen, Daten und Regeln fest.

Die TPC-H-Seite beschreibt eine Reihe geschäftsorientierter Ad-hoc-Abfragen mit gleichzeitigen Datenänderungen (geprüft am 1. November 2026). Die Spezifikation definiert acht Tabellen: PART, PARTSUPP, LINEITEM, ORDERS, CUSTOMER, SUPPLIER, NATION und REGION. Alle außer den letzten beiden wachsen mit dem Skalierungsfaktor; LINEITEM, die größte, enthält etwa 6.000.000 Zeilen pro Einheit. Die Refresh-Funktion RF1 fügt neue Zeilen in ORDERS und LINEITEM ein, RF2 entfernt alte Verkäufe (geprüft am 1. November 2026).

Wie wird das TPC-H-Ergebnis berechnet?

Ein Lauf besteht aus einem Power-Test und einem anschließenden Durchsatztest, und QphH@Size ist das geometrische Mittel beider Ergebnisse. Die Preiskennzahl ist der Gesamtpreis des Systems geteilt durch QphH@Size, mal 1.000.

Im Power-Test führt ein Refresh-Strom RF1 aus, eine einzelne Abfragesitzung führt alle 22 Abfragen einmal aus, dann führt der Refresh-Strom RF2 aus. Power@Size ist 3.600 mal der Skalierungsfaktor, geteilt durch das geometrische Mittel dieser 24 Zeiten. Im Durchsatztest laufen mehrere Abfrageströme neben einem Refresh-Strom: mindestens 2 bei Faktor 1, bis zu 11 bei Faktor 100.000. Throughput@Size sind die Abfragen pro Stunde über alle Ströme, mal den Skalierungsfaktor. Ein vollständiger Test hat zwei Läufe, und der Sponsor meldet den mit dem niedrigeren QphH (alles laut Spezifikation, geprüft am 1. November 2026).

Das geometrische Mittel gewichtet jede Abfrage gleich, daher hebt die Halbierung der Zeit einer einzigen Abfrage Power nur um etwa 3 %. Ein offizielles Ergebnis nutzt einen Skalierungsfaktor aus einer festen Liste: 1, 10, 30, 100 und so weiter bis 100.000.

Wer veröffentlicht TPC-H-Ergebnisse, und welche zählen?

Hersteller, die einen Test sponsern, veröffentlichen auditierte Ergebnisse auf tpc.org, und nur diese gelten als offiziell. Jeder andere Lauf ist ein abgeleiteter Workload mit eigenen Regeln.

Die Spezifikation verlangt ein unabhängiges Audit durch einen vom TPC zertifizierten Auditor. Die Fair-Use-Kurzreferenz des TPC erlaubt den TPC-Namen neben Ergebnissen nur für offiziell veröffentlichte Ergebnisse. Alles andere braucht das Präfix „Derived from“, darf die TPC-Kennzahl nicht verwenden, muss einen Hinweis tragen, dass es mit veröffentlichten Ergebnissen nicht vergleichbar ist, sollte Umgebung und Abweichungen offenlegen und darf nicht mit offiziellen Ergebnissen verglichen werden (geprüft am 1. November 2026).

Wie führen Sie TPC-H selbst aus?

Erzeugen Sie Daten und Abfragetext, laden Sie die Tabellen und führen Sie dann den Power-Test und anschließend den Durchsatztest aus. Dafür eignen sich die Tools des TPC, ein Kit für eine bestimmte Datenbank oder eine Engine mit eingebautem Generator.

Die Seite mit den aktuellen Spezifikationen des TPC bietet ein kostenloses Tool-Paket an: Sie registrieren sich, akzeptieren eine Lizenz und erhalten den Link per E-Mail. Laut Spezifikation müssen DBGen die Daten und QGen den Abfragetext erzeugen (geprüft am 1. November 2026).

Für PostgreSQL beschreibt die TPC-H-Seite im Wiki kein Schritt-für-Schritt-Verfahren und verweist auf DBT-3, ein vollständiges Kit, das die DBT-3-Seite des Wikis eine Fair-Use-Implementierung der Spezifikation nennt. HammerDB bringt TPROC-H mit, das seine Dokumentation als von TPC-H abgeleiteten Open-Source-Workload beschreibt, der mit veröffentlichten Ergebnissen nicht vergleichbar ist. Es läuft auf PostgreSQL, MySQL, Oracle und weiteren Engines, und die Dokumentation empfiehlt, das geometrische Mittel der Abfragezeiten zu vergleichen, statt QphH zu berechnen (alles geprüft am 1. November 2026).

DuckDB hat eine Extension tpch, die laut ihrer Dokumentation den Datengenerator und die Abfragen implementiert. Diese Zeilen erzeugen Faktor 1, führen Abfrage 4 aus und listen die 22 Abfragen auf:

CALL dbgen(sf = 1);
PRAGMA tpch(4);
FROM tpch_queries();

Dieselbe Seite warnt, dass die Daten leicht von der Spezifikation abweichen, dass jede Abfrage mit festen Parametern läuft und dass dbgen bestehende Tabellen nicht löscht. Für vollständig konforme Daten verweist sie auf tpchgen-cli (geprüft am 1. November 2026).

Wie lesen Sie TPC-H-Ergebnisse ehrlich?

Vergleichen Sie Ergebnisse nur bei gleichem Skalierungsfaktor und gleicher Benchmark-Version, und lesen Sie jede Kennzahl mit ihrem Größensuffix. Ein Diagramm einzelner Abfragezeiten zeigt weder den Power-Test noch den Durchsatztest.

Die Ergebnisseite gruppiert die Ergebnisse nach Datenbankgröße und enthält drei Hinweise: Ergebnisse der Versionen 2 und 3 sind nicht vergleichbar, Preis-Leistung in verschiedenen Währungen sollte nicht verglichen werden, und Vergleiche über Datenbankgrößen hinweg sind irreführend (geprüft am 1. November 2026). Die Spezifikation ergänzt, dass Ergebnisse mit unterschiedlicher Zahl von Strömen bei gleicher Datenbankgröße vergleichbar sind.

Achten Sie bei einem informellen Lauf auf das, was die Fair-Use-Regeln verlangen: Hardware und Arbeitsspeicher, Änderungen an Schema oder Abfragetext und ob Refresh-Funktionen liefen. Ein Beitrag, der die 22 Abfragen einmal mit warmem Cache und ohne Refresh-Strom misst, bildet nur die Abfragehälfte eines Power-Tests ab, wobei ein solcher Lauf für die eigene Regressionskontrolle trotzdem hilft. Zum Verhältnis von Abfragerate und Antwortzeit siehe Durchsatz vs. Latenz.

Wann sollten Sie etwas anderes als TPC-H nutzen?

Wenn der Workload transaktional ist, wenn Sie einen neueren Analytics-Benchmark möchten oder wenn es darum geht, was Benutzer erleben. Der Benchmark bildet einen analytischen Workload ab, ohne kurze Transaktionen und ohne Anwendungsschicht.

Wählen Sie TPC-DS für einen breiteren Test der Entscheidungsunterstützung: Die Spezifikation in Version 4.0.0 nutzt ein Snowflake-Schema mit sieben Faktentabellen und 99 Abfragen, und die Übersichtsseite sagt, dass Ergebnisse der Version 4 nicht mit früheren Versionen vergleichbar sind. Wählen Sie TPC-C oder das TPROC-C von HammerDB für OLTP im Stil einer Auftragserfassung: Die TPC-C-Seite beschreibt fünf Transaktionstypen, gemessen in tpmC (alles geprüft am 1. November 2026). Für einen schnellen Check einer einzelnen Datenbank deckt pgbench PostgreSQL ab und sysbench MySQL.

LoadFocus, der Herausgeber dieser Website, führt TPC-H nicht aus; seine Tests zielen auf Web- und API-Endpoints. LoadFocus führt JMeter-Testpläne und k6-Skripte aus 25 Cloud-Regionen aus, ohne JDBC-Treiber und ohne SQL-Modul, und kann sich daher nicht mit der Datenbank verbinden. Wählen Sie für diese Aufgabe statt LoadFocus ein Datenbank-Benchmark-Tool wie die DuckDB-Extension, DBT-3 oder HammerDB, und nutzen Sie LoadFocus für die Web- oder API-Schicht vor der Datenbank.

FAQ

Was ist der Unterschied zwischen TPC-H und TPC-DS? Beide sind Benchmarks des TPC für Entscheidungsunterstützung. TPC-H nutzt 8 Tabellen und 22 Abfragen und meldet QphH@Size, TPC-DS nutzt ein Snowflake-Schema mit sieben Faktentabellen und 99 Abfragen und meldet QphDS@SF.

Was bedeutet QphH@Size in TPC-H? Es ist die zusammengesetzte Kennzahl für Abfragen pro Stunde: das geometrische Mittel der Ergebnisse von Power-Test und Durchsatztest bei einer Datenbankgröße. Das Suffix nennt diese Größe, etwa QphH@1000GB, und Ergebnisse bei verschiedenen Größen sollten nicht verglichen werden.

Kann LoadFocus TPC-H ausführen? Nein. LoadFocus führt JMeter-Testpläne und k6-Skripte gegen Web- und API-Endpoints aus und hat keine SQL-Verbindung, nutzen Sie also für TPC-H ein Datenbank-Benchmark-Tool und LoadFocus für die Anwendungsschicht vor der Datenbank.

Weiterlesen


Die technischen Aussagen in diesem Artikel wurden nicht unabhängig geprüft.

LoadFocus team
Geschrieben vom LoadFocus-Team, den Leuten hinter einem Cloud-Lasttest-Dienst.