【TPC-H】總結介紹
基礎介紹
TPC基準™H(TPC-H)是一個決策支援基準。它由一系列面向業務的即席查詢和併發資料修改組成。選擇的查詢和填充資料庫的資料具有廣泛的行業相關性,同時保持足夠的易實現性。這個基準說明了決策支援系統
- 檢查大量資料;
- 行高度複雜的查詢;
- 回答關鍵業務問題
查詢特點
TPC-H通過在受控條件下對標準資料庫執行一組查詢來評估各種決策支援系統的效能。TPC-H查詢:
- 回答現實世界中的商業問題
- 模擬生成的即席查詢
- 比大多數OLTP事務複雜得多
- 包含豐富的操作員範圍和選擇性約束
- 在被測系統的資料庫伺服器元件上生成密集活動
- 針對符合特定人口和規模要求的資料庫執行
- 通過與線上生產資料庫保持密切同步而產生的約束來實現
執行建模
- 該資料庫每週7天、每天24小時連續可用,用於多個終端使用者的臨時查詢和對所有表的資料修改,偶爾(如每月一次)維護會話除外;
- TPC-H資料庫通過正在進行的重新整理功能跟蹤OLTP資料庫的狀態,可能會有一些延遲,這些重新整理功能將影響決策支援資料庫某些部分的一些修改批處理在一起;
- 由於TPC-H資料庫中儲存的業務資料的全球性質,查詢和重新整理功能可隨時針對資料庫執行,尤其是相互關聯的查詢和重新整理功能。此外,由於查詢和重新整理功能可能同時執行,因此查詢和重新整理功能的組合受特定要求的約束;
- 為了在效能和操作要求之間實現最佳折衷,資料庫管理員可以一次性設定查詢和重新整理功能的鎖定級別和併發排程規則。
指標介紹
- QphH@Size:每小時複合查詢效能指標。反映了系統處理查詢能力的多個方面。這些方面包括執行查詢所依據的選定資料庫大小、由單個流提交查詢時的查詢處理能力以及由多個併發使用者提交查詢時的查詢吞吐量
- $/kQphH@Size:價格/效能指標
- Availability Date:系統可利日期
相關檔案介紹
dss.ddl
該檔案裡面包含了 建立表的 8 條 SQL 語句。
dss.ri
這裡是建立表約束的 SQL 語句,例如主鍵與外來鍵。
/queries 資料夾
該資料夾下面是 22 條查詢 SQL。
上一層的 /ref_data 資料夾
該資料夾裡面存放了,填充資料表所需要的資料。
dbgen 與 qgen
dbgen 是用來生成與填充 符合基準的資料表的程式,來幫助我們簡單的構建符合要求的資料表與資料。
qgen 是基於基準的查詢程式,來幫助我們構建一個簡單的基準實現。
以上兩個可執行檔案,均需要編譯生成
工具的編譯安裝
# 用來解壓 zip 包的 unzip 命令 yum install unzip # 用來 編譯連結 的必備環境 yum install gcc yum install make
指標計算
QphH@Size
Power
QI(i,0):功率測試的單個查詢流中查詢Q的計時間隔(以秒為單位)。取最大的查詢時間
RI(j,0):是功率測試的單個查詢流中重新整理函式RF的計時間隔(以秒為單位)
size:大小是為測量選擇的資料庫大小
Throughput Numerical Quantity
定義:為在測量間隔長度上執行的查詢總數的比率,Throughput@Size是每小時查詢數*比例因子,報告到小數點後一位,四捨五入到最接近的0.1
T:定義的測量間隔
S:吞吐量測試中使用的查詢留數
size:大小是為測量選擇的資料庫大小
Query-Per-Hour Performance Metric
注:QphH@Size是每小時查詢數*比例因子,報告到小數點後一位,四捨五入到最接近的0.1
Price-per-kQphH@Size
注:QphH@Size四捨五入至最高分(例如,12.123美元的價格/效能必須顯示為12.13美元)
資料庫實體、關係和特徵
*注:每個表名後面的括號包含該表列名的字首;
•箭頭指向表之間一對多關係的方向;
•每個表名下面的數字/公式表示表的行數。一些通過SF (Scale Factor)進行因式分解,得到所選擇的資料庫大小
RF更新函式
重新整理功能概述
22個決策支援查詢和兩個資料庫重新整理函式,它們必須作為TPC-H基準測試的一部分執行
每個重新整理功能由以下元件定義:
- 業務原理,說明可使用重新整理功能的業務環境;
- 重新整理功能定義,在虛擬碼中定義重新整理功能要執行的功能;
- refresh data set(重新整理資料集),它定義了每次執行重新整理功能時要插入或刪除到ORDERS和LINEITEM表中的行集。這組行代表這兩個表初始總體的0.1%
重新整理函式定義
RF1(新的銷售重新整理功能)
目的
這個更新函式增加新的銷售資訊到資料庫
商業原理
新銷售更新函式以一定的縮放比例和移植資料庫時所用的資料產生方法向ORDERS和LINEITEM表中加入新的行
更新函式定義
LOOP (SF * 1500) TIMES INSERT a new row into the ORDERS table LOOP RANDOM(1, 7) TIMES INSERT a new row into the LINEITEM table END LOOP END LOOP
更新資料設定
將要插入的行資料必須是DBGEN使用-u選項,這個選項會產生和你在多流測試中所需一樣多的行
RF2(舊的銷售重新整理功能)
目的
此更新函式將舊的銷售資訊從資料庫中刪除
商業原理
舊銷售更新函式從資料庫的ORDERS和LINETIEM表中刪除行,以去掉過時的資訊
更新函式定義
LOOP (SF * 1500) TIMES DELETE FROM ORDERS WHERE O_ORDERKEY = [value] DELETE FROM LINEITEM WHERE L_ORDERKEY = [value] END LOOP
重新整理資料集
DBGen必須使用-U選項生成要插入的行集。這個選項將要產生在多流測試中所需的足夠多的主鍵集,將要刪除的行從兩個目標表的第一行開始,
TPC原始碼的DBGEN和QGEN版本2.18.0用於生成所有資料庫填充
測試流程
Power Test
定義:必須由單個重新整理流並行執行
流程:
- 重新整理功能RF1由重新整理流執行
- 整個查詢集由查詢流執行一次
- 重新整理功能RF2由重新整理流執行
吞吐量測試
吞吐量測試表:所需的最小流計數
*注:吞吐量測試必須立即進行一次,而且只有一次,功率測試。在功率測試和吞吐量測試之間,不能對SUT的配置進行任何更改
測試報告
必含指標
必須包含的內容如下:
- 測試資料庫的大小,單獨表示或作為度量名稱的一部分(例如QphH@10GB);
- TPC-H效能指標,QphH@Size;
- TPC-H價格/效能指標$/kQphH@Size;
- 定價配置的可用日期
示例:RALF/3000伺服器將於1999年4月1日開始發貨,其額定值為3010,324QphH@10000GB和68.21$/kQphH@10000GB.