摘要:一個實用的通用型數據庫性能測評工具對國產通用型數據庫產品的開發(fā)和推廣都是必不可少的。文章通過決策支持評測系統(tǒng)在大數據量上執(zhí)行高復雜度的查詢語句,模擬復雜的商業(yè)分析應用,最終評測數據庫對于復雜查詢語句的處理能力。根據TPC-H測試基準的要求,設計并實現(xiàn)了一個基于TPC-H的決策支持評測系統(tǒng),并利用該系統(tǒng)完成了對國產數據庫Redbase的測試。
關鍵詞:決策支持評測;TPC-H;數據庫;設計模式;體系結構
0引言
隨著計算機技術在各行各業(yè)的廣泛應用,數據已經成為各行各業(yè)的寶貴資料。數據庫管理系統(tǒng)是政府和大型企業(yè)的信息系統(tǒng)的核心軟件,數據庫性能的好壞直接影響著整個應用系統(tǒng)的正常運行。目前國產數據庫在技術上已經取得了長足的進展,但是在實際推廣應用過程中還存在不少障礙。在國產通用型數據庫產品的發(fā)展過程中,數據庫測評工具將發(fā)揮不可忽視的作用。本文設計實現(xiàn)了一個數據庫測試系統(tǒng):決策支持評測系統(tǒng)[1]。
1決策支持評測系統(tǒng)的設計思想
國際事務處理性能委員會(TPC)定義了一系列數據庫系統(tǒng)基準程序的標準。當前正在使用的性能測評標準有以下三種:(1)針對OLTP系統(tǒng)的性能測試基準;TPC-C;(2)針對數據倉庫或決策支持系統(tǒng)的性能測試基準:TPC-H;(3)對電子商務應用的性能測試基準:TPC-W。本文基于TPC-H測試基準,設計實現(xiàn)了一個決策支持評測系統(tǒng)。
決策支持評測系統(tǒng)的基準類型是聯(lián)機分析處理。聯(lián)機分析處理面向決策人員,支持管理需要,以便企業(yè)占有更大的市場,獲得更好的投資回報。在待測數據庫中,絕大部分數據是靜態(tài)的、導出的、綜合性的數據,同時數據處理量很大。
決策支持評測系統(tǒng)的商業(yè)環(huán)境如圖1所示。決策支持評測系統(tǒng)是在待測商業(yè)環(huán)境上,進行事務處理后,對商業(yè)環(huán)境進行分析。而另外兩種數據庫性能評測系統(tǒng)是在待測商業(yè)環(huán)境上,進行事務處理,實時分析待測商業(yè)環(huán)境的操作效果。由于實際運行的商業(yè)模型,會有多個用戶同時訪問數據庫,因此在對待測系統(tǒng)執(zhí)行復雜查詢語句的過程中,還需要模擬其它用戶的操作,決策支持評測系統(tǒng)利用更新函數來完成這部份功能的模擬。
決策支持評測系統(tǒng)的設計思想是,在給定系統(tǒng)、數據庫和特定復雜查詢語句的前提下,通過測量查詢語句和更新語句的執(zhí)行時間來測試待測數據庫和硬件的性能。
決策支持評測系統(tǒng)使用的商業(yè)模型是模擬一個世界范圍內的銷售供應商。待測數據庫的數據模型如圖2所示,包括八張相互獨立的基表。它們之間存在的引用關系,在圖中用箭頭表示。
數據庫的大小用規(guī)模因子(sF)來定義,例如規(guī)模因子l代表待測數據庫中的數據量大約是1G。
2決策支持評測系統(tǒng)的體系結構設計
決策支持測評系統(tǒng)可以采用兩種體系結構模型:基于本機和C/S模型。雖然基于本機構架實現(xiàn)的測評系統(tǒng)比較簡單,但是不能很好地滿足當前決策支持系統(tǒng)實際操作的需要。因此本文使用了C/S模型,如圖3所示。
決策支持評測系統(tǒng)的體系結構模型主要是由驅動器模塊和待測系統(tǒng)模塊組成。對于基于本機的構架,待測系統(tǒng)是本機系統(tǒng);對于C/S構架,待測系統(tǒng)為服務器。驅動器模塊的作用就是用于發(fā)送查詢語句和更新語句給待測系統(tǒng),同時測試它們的執(zhí)行時間。驅動器是一個邏輯實體,它可以通過一組物理程序、過程或系統(tǒng)來實現(xiàn)。待測系統(tǒng)執(zhí)行完這些查詢語句并將結果返回給驅動器。
驅動器模塊主要由數據生成子模塊、查詢轉換子模塊、查詢分析子模塊組成,如圖4所示。驅動器模塊主要實現(xiàn)的功能包括:(1)產生查詢流中查詢語句的執(zhí)行序列;(2)維護查詢文本和查詢輸出結果的日志記錄;(3)產生每條查詢語句的可執(zhí)行查詢文本;(4)產生每條查詢語句中的替換參數;(5)利用產生的替換參數替換每條查詢語句中的待替換參數并最終產生完整的可執(zhí)行查詢文本;(6)發(fā)送每一條完整的可執(zhí)行查詢文本給待測系統(tǒng)執(zhí)行;(7)發(fā)送每一個可執(zhí)行的更新語句給待測系統(tǒng)執(zhí)行;(8)接收待測系統(tǒng)執(zhí)行完每條查詢語句后返回的數據;(9)計算查詢語句,更新語句的執(zhí)行時間。
2.1查詢模板
決策支持評測系統(tǒng)中的查詢語句非常重要,這些查詢語句都具有現(xiàn)實意義,專門用于模擬商業(yè)用戶活動;并且沒有模擬任何特殊的商業(yè)活動,而僅僅是對商業(yè)領域中必須進行的重要的基本商業(yè)活動進行模擬,例如:商品的管理、商品的買賣、商品在銷售范圍內的分銷等。
決策支持評測系統(tǒng)中使用的查詢語句具有下列特點:有較高的復雜性;描述不同的商業(yè)問題;模擬產生隨機查詢語句;訪問范圍將最大限度地覆蓋待測數據庫中所有數據。
系統(tǒng)提供的查詢模板是帶參數的查詢語句。經過查詢轉換子模塊后,查詢模板中的參數將被確定的值替換,同時可以檢驗在當前替換值下,查詢語句的返回結果是否正確。
2.2更新函數
在進行實際測試的過程中,為了模擬真實的商業(yè)工作環(huán)境,需要對后臺數據庫中的數據進行更新,在測試過程中這部分工作使用更新函數來實現(xiàn)。
更新函數主要向數據庫表進行插入和刪除操作。使用的兩個更新函數分別是:新增訂單函數RFl(該函數增加新的信息到數據庫中);刪除舊訂單函數EF2(該更新函數從數據庫中刪除舊的信息)。更新函數操作涉及的數據集是相關表數據的千分之一。
2.2.1數據生成子模塊
數據生成子模塊主要功能是生成數據文件和更新數據文件。待測數據根據待測試數據庫的自身特點和數據庫模式,使用隨機函數產生。數據文件是測試時使用的基礎數據,利用待測數據庫自帶的裝載工具將數據裝載到相應表中;更新文件中的數據將由更新函數在測試過程中使用。
2.2.2查詢轉換子模塊
查詢轉換子模塊主要完成查詢模板中待替換參數的替換工作。查詢轉換子模塊相當于是—個過濾器。它一次讀取查詢模板中一行,察看其中是否含有待替換參數,針對每個待替換參數的具體含義,產生符合要求的隨機數據來代替待替換參數。主要涉及到的替換內容包括:事務開始、結束的語句,連接到數據庫的語句,查詢返回指定行語句,查詢號,流號,打開查詢計劃的語句,參數替換。
2.2.3查詢分析子模塊
在運行查詢轉換子模塊后,查詢模板變成了可執(zhí)行的查詢語句。但僅僅執(zhí)行這些查詢還不夠,還要設置查詢運行時的隔離級別,記錄每條查詢開始的時間和結束的時間等。
3決策支持評測系統(tǒng)的測試實現(xiàn)
決策支持評測系統(tǒng)主要操作包括:測試前的準備工作和性能測試。測試前的準備工作包括:設置環(huán)境變量,建立待測環(huán)境。在進行測試前準備工作和開始性能測試之間,系統(tǒng)發(fā)生的所有操作都要受到限制,因為這些操作都不會提高系統(tǒng)測試結果。
性能測試過程分兩步來進行,第一步是進行功率測試,第二步是進行吞吐量測試。如果第一部分發(fā)生錯誤,那么整個測試過程必須從頭開始重做。如果第二步發(fā)生錯誤,只需重啟機器而不需要從頭開始。功率測試和吞吐量測試的執(zhí)行必須限制在相同的測試環(huán)境下,使用相同的軟硬件環(huán)境、系統(tǒng)參數,并且在執(zhí)行過程中需要滿足ACID屬性。性能測試的執(zhí)行流程如圖5所示。
(1)功率測試子模塊的實統(tǒng)
功率測試用來測試單個測試用戶和待測系統(tǒng)連接時,待測系統(tǒng)的原始查詢執(zhí)行能力。
功率測試的測試流程:執(zhí)行更新函數RFl;執(zhí)行查詢語句;執(zhí)行更新函數RF2。每條查詢語句和兩條更新語句之間的時間間隔將在性能度量中使用。
(2)吞吐童測試子模塊的實現(xiàn)
吞吐量測試用來測試待測系統(tǒng)以最少時間進行最多查詢操作的能力。吞吐量測試采用多用戶并發(fā)模式,并發(fā)執(zhí)行多條查詢流,每一條查詢流都按照一定的順序執(zhí)行查詢語句。在吞吐量測試過程中,有一個更新流在和查詢流同時進行。
下面是使用本測試系統(tǒng)對于國產數據庫RedBase 7.5的測試數據。
Composite Query per Hour Rating(QphH@Size):6.80
System Configuration
Database Manager:RedBase 7.5
Operating System:windows2000 advanced server
Other Software:NO
Processors:奔騰2.8G
Memory:1GB
Total Disk Storage:80GB
Numerical Quantities Summary
Measurement Results:
Database Scaling(SF/Size)=O.1
Query Streams for Throughput Test=3
TPC-H Power Metric(QppH@0.1 GB)=5.98
TPC-H Throughput Metric(QthH@0,1GB)=1.78
Composite Query-per-Hour Rating(QphH@0.1 GB)=3.26
綜合每小時查詢性能指標(QphH@Size)即為性能測試的指標。通過把測試用的原始數據量、并發(fā)用戶數、每個查詢與數據更新操作的處理時間等進行綜合加權計算,即可得出綜合每小時查詢性能指標(QphH@Size)。綜合性能指標值越大越好。
在決策支持評測系統(tǒng)測試中,待測試系統(tǒng)規(guī)模參數的大小是衡量測試結果的決定性因素,但目前我們僅僅實現(xiàn)了O.1G數據規(guī)模的測試。在以后的工作中還需要根據硬件條件提高規(guī)模參數。
4結束語
根據本文所述決策支持評測系統(tǒng)的實現(xiàn)原理,本文設計實現(xiàn)了決策支持評測系統(tǒng)的網絡版,并且成功地利用它對國產數據庫Redbase進行了測試。本文的工作不僅為數據庫決策支持功能的測試技術提供了參考,同時有助于Redbase數據庫的進一步完善。
(注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。)