摘要:一個實用的通用型數(shù)據(jù)庫性能測評工具對國產(chǎn)通用型數(shù)據(jù)庫產(chǎn)品的開發(fā)和推廣都是必不可少的。文章通過決策支持評測系統(tǒng)在大數(shù)據(jù)量上執(zhí)行高復(fù)雜度的查詢語句,模擬復(fù)雜的商業(yè)分析應(yīng)用,最終評測數(shù)據(jù)庫對于復(fù)雜查詢語句的處理能力。根據(jù)TPC-H測試基準(zhǔn)的要求,設(shè)計并實現(xiàn)了一個基于TPC-H的決策支持評測系統(tǒng),并利用該系統(tǒng)完成了對國產(chǎn)數(shù)據(jù)庫Redbase的測試。
關(guān)鍵詞:決策支持評測;TPC-H;數(shù)據(jù)庫;設(shè)計模式;體系結(jié)構(gòu)
0引言
隨著計算機(jī)技術(shù)在各行各業(yè)的廣泛應(yīng)用,數(shù)據(jù)已經(jīng)成為各行各業(yè)的寶貴資料。數(shù)據(jù)庫管理系統(tǒng)是政府和大型企業(yè)的信息系統(tǒng)的核心軟件,數(shù)據(jù)庫性能的好壞直接影響著整個應(yīng)用系統(tǒng)的正常運行。目前國產(chǎn)數(shù)據(jù)庫在技術(shù)上已經(jīng)取得了長足的進(jìn)展,但是在實際推廣應(yīng)用過程中還存在不少障礙。在國產(chǎn)通用型數(shù)據(jù)庫產(chǎn)品的發(fā)展過程中,數(shù)據(jù)庫測評工具將發(fā)揮不可忽視的作用。本文設(shè)計實現(xiàn)了一個數(shù)據(jù)庫測試系統(tǒng):決策支持評測系統(tǒng)[1]。
1決策支持評測系統(tǒng)的設(shè)計思想
國際事務(wù)處理性能委員會(TPC)定義了一系列數(shù)據(jù)庫系統(tǒng)基準(zhǔn)程序的標(biāo)準(zhǔn)。當(dāng)前正在使用的性能測評標(biāo)準(zhǔn)有以下三種:(1)針對OLTP系統(tǒng)的性能測試基準(zhǔn);TPC-C;(2)針對數(shù)據(jù)倉庫或決策支持系統(tǒng)的性能測試基準(zhǔn):TPC-H;(3)對電子商務(wù)應(yīng)用的性能測試基準(zhǔn):TPC-W。本文基于TPC-H測試基準(zhǔn),設(shè)計實現(xiàn)了一個決策支持評測系統(tǒng)。
決策支持評測系統(tǒng)的基準(zhǔn)類型是聯(lián)機(jī)分析處理。聯(lián)機(jī)分析處理面向決策人員,支持管理需要,以便企業(yè)占有更大的市場,獲得更好的投資回報。在待測數(shù)據(jù)庫中,絕大部分?jǐn)?shù)據(jù)是靜態(tài)的、導(dǎo)出的、綜合性的數(shù)據(jù),同時數(shù)據(jù)處理量很大。

決策支持評測系統(tǒng)的商業(yè)環(huán)境如圖1所示。決策支持評測系統(tǒng)是在待測商業(yè)環(huán)境上,進(jìn)行事務(wù)處理后,對商業(yè)環(huán)境進(jìn)行分析。而另外兩種數(shù)據(jù)庫性能評測系統(tǒng)是在待測商業(yè)環(huán)境上,進(jìn)行事務(wù)處理,實時分析待測商業(yè)環(huán)境的操作效果。由于實際運行的商業(yè)模型,會有多個用戶同時訪問數(shù)據(jù)庫,因此在對待測系統(tǒng)執(zhí)行復(fù)雜查詢語句的過程中,還需要模擬其它用戶的操作,決策支持評測系統(tǒng)利用更新函數(shù)來完成這部份功能的模擬。
決策支持評測系統(tǒng)的設(shè)計思想是,在給定系統(tǒng)、數(shù)據(jù)庫和特定復(fù)雜查詢語句的前提下,通過測量查詢語句和更新語句的執(zhí)行時間來測試待測數(shù)據(jù)庫和硬件的性能。
決策支持評測系統(tǒng)使用的商業(yè)模型是模擬一個世界范圍內(nèi)的銷售供應(yīng)商。待測數(shù)據(jù)庫的數(shù)據(jù)模型如圖2所示,包括八張相互獨立的基表。它們之間存在的引用關(guān)系,在圖中用箭頭表示。
數(shù)據(jù)庫的大小用規(guī)模因子(sF)來定義,例如規(guī)模因子l代表待測數(shù)據(jù)庫中的數(shù)據(jù)量大約是1G。
2決策支持評測系統(tǒng)的體系結(jié)構(gòu)設(shè)計
決策支持測評系統(tǒng)可以采用兩種體系結(jié)構(gòu)模型:基于本機(jī)和C/S模型。雖然基于本機(jī)構(gòu)架實現(xiàn)的測評系統(tǒng)比較簡單,但是不能很好地滿足當(dāng)前決策支持系統(tǒng)實際操作的需要。因此本文使用了C/S模型,如圖3所示。
決策支持評測系統(tǒng)的體系結(jié)構(gòu)模型主要是由驅(qū)動器模塊和待測系統(tǒng)模塊組成。對于基于本機(jī)的構(gòu)架,待測系統(tǒng)是本機(jī)系統(tǒng);對于C/S構(gòu)架,待測系統(tǒng)為服務(wù)器。驅(qū)動器模塊的作用就是用于發(fā)送查詢語句和更新語句給待測系統(tǒng),同時測試它們的執(zhí)行時間。驅(qū)動器是一個邏輯實體,它可以通過一組物理程序、過程或系統(tǒng)來實現(xiàn)。待測系統(tǒng)執(zhí)行完這些查詢語句并將結(jié)果返回給驅(qū)動器。
驅(qū)動器模塊主要由數(shù)據(jù)生成子模塊、查詢轉(zhuǎn)換子模塊、查詢分析子模塊組成,如圖4所示。驅(qū)動器模塊主要實現(xiàn)的功能包括:(1)產(chǎn)生查詢流中查詢語句的執(zhí)行序列;(2)維護(hù)查詢文本和查詢輸出結(jié)果的日志記錄;(3)產(chǎn)生每條查詢語句的可執(zhí)行查詢文本;(4)產(chǎn)生每條查詢語句中的替換參數(shù);(5)利用產(chǎn)生的替換參數(shù)替換每條查詢語句中的待替換參數(shù)并最終產(chǎn)生完整的可執(zhí)行查詢文本;(6)發(fā)送每一條完整的可執(zhí)行查詢文本給待測系統(tǒng)執(zhí)行;(7)發(fā)送每一個可執(zhí)行的更新語句給待測系統(tǒng)執(zhí)行;(8)接收待測系統(tǒng)執(zhí)行完每條查詢語句后返回的數(shù)據(jù);(9)計算查詢語句,更新語句的執(zhí)行時間。
2.1查詢模板
決策支持評測系統(tǒng)中的查詢語句非常重要,這些查詢語句都具有現(xiàn)實意義,專門用于模擬商業(yè)用戶活動;并且沒有模擬任何特殊的商業(yè)活動,而僅僅是對商業(yè)領(lǐng)域中必須進(jìn)行的重要的基本商業(yè)活動進(jìn)行模擬,例如:商品的管理、商品的買賣、商品在銷售范圍內(nèi)的分銷等。
決策支持評測系統(tǒng)中使用的查詢語句具有下列特點:有較高的復(fù)雜性;描述不同的商業(yè)問題;模擬產(chǎn)生隨機(jī)查詢語句;訪問范圍將最大限度地覆蓋待測數(shù)據(jù)庫中所有數(shù)據(jù)。
系統(tǒng)提供的查詢模板是帶參數(shù)的查詢語句。經(jīng)過查詢轉(zhuǎn)換子模塊后,查詢模板中的參數(shù)將被確定的值替換,同時可以檢驗在當(dāng)前替換值下,查詢語句的返回結(jié)果是否正確。
2.2更新函數(shù)
在進(jìn)行實際測試的過程中,為了模擬真實的商業(yè)工作環(huán)境,需要對后臺數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行更新,在測試過程中這部分工作使用更新函數(shù)來實現(xiàn)。
更新函數(shù)主要向數(shù)據(jù)庫表進(jìn)行插入和刪除操作。使用的兩個更新函數(shù)分別是:新增訂單函數(shù)RFl(該函數(shù)增加新的信息到數(shù)據(jù)庫中);刪除舊訂單函數(shù)EF2(該更新函數(shù)從數(shù)據(jù)庫中刪除舊的信息)。更新函數(shù)操作涉及的數(shù)據(jù)集是相關(guān)表數(shù)據(jù)的千分之一。
2.2.1數(shù)據(jù)生成子模塊
數(shù)據(jù)生成子模塊主要功能是生成數(shù)據(jù)文件和更新數(shù)據(jù)文件。待測數(shù)據(jù)根據(jù)待測試數(shù)據(jù)庫的自身特點和數(shù)據(jù)庫模式,使用隨機(jī)函數(shù)產(chǎn)生。數(shù)據(jù)文件是測試時使用的基礎(chǔ)數(shù)據(jù),利用待測數(shù)據(jù)庫自帶的裝載工具將數(shù)據(jù)裝載到相應(yīng)表中;更新文件中的數(shù)據(jù)將由更新函數(shù)在測試過程中使用。
2.2.2查詢轉(zhuǎn)換子模塊
查詢轉(zhuǎn)換子模塊主要完成查詢模板中待替換參數(shù)的替換工作。查詢轉(zhuǎn)換子模塊相當(dāng)于是—個過濾器。它一次讀取查詢模板中一行,察看其中是否含有待替換參數(shù),針對每個待替換參數(shù)的具體含義,產(chǎn)生符合要求的隨機(jī)數(shù)據(jù)來代替待替換參數(shù)。主要涉及到的替換內(nèi)容包括:事務(wù)開始、結(jié)束的語句,連接到數(shù)據(jù)庫的語句,查詢返回指定行語句,查詢號,流號,打開查詢計劃的語句,參數(shù)替換。
2.2.3查詢分析子模塊
在運行查詢轉(zhuǎn)換子模塊后,查詢模板變成了可執(zhí)行的查詢語句。但僅僅執(zhí)行這些查詢還不夠,還要設(shè)置查詢運行時的隔離級別,記錄每條查詢開始的時間和結(jié)束的時間等。
3決策支持評測系統(tǒng)的測試實現(xiàn)
決策支持評測系統(tǒng)主要操作包括:測試前的準(zhǔn)備工作和性能測試。測試前的準(zhǔn)備工作包括:設(shè)置環(huán)境變量,建立待測環(huán)境。在進(jìn)行測試前準(zhǔn)備工作和開始性能測試之間,系統(tǒng)發(fā)生的所有操作都要受到限制,因為這些操作都不會提高系統(tǒng)測試結(jié)果。
性能測試過程分兩步來進(jìn)行,第一步是進(jìn)行功率測試,第二步是進(jìn)行吞吐量測試。如果第一部分發(fā)生錯誤,那么整個測試過程必須從頭開始重做。如果第二步發(fā)生錯誤,只需重啟機(jī)器而不需要從頭開始。功率測試和吞吐量測試的執(zhí)行必須限制在相同的測試環(huán)境下,使用相同的軟硬件環(huán)境、系統(tǒng)參數(shù),并且在執(zhí)行過程中需要滿足ACID屬性。性能測試的執(zhí)行流程如圖5所示。
(1)功率測試子模塊的實統(tǒng)
功率測試用來測試單個測試用戶和待測系統(tǒng)連接時,待測系統(tǒng)的原始查詢執(zhí)行能力。
功率測試的測試流程:執(zhí)行更新函數(shù)RFl;執(zhí)行查詢語句;執(zhí)行更新函數(shù)RF2。每條查詢語句和兩條更新語句之間的時間間隔將在性能度量中使用。
(2)吞吐童測試子模塊的實現(xiàn)

吞吐量測試用來測試待測系統(tǒng)以最少時間進(jìn)行最多查詢操作的能力。吞吐量測試采用多用戶并發(fā)模式,并發(fā)執(zhí)行多條查詢流,每一條查詢流都按照一定的順序執(zhí)行查詢語句。在吞吐量測試過程中,有一個更新流在和查詢流同時進(jìn)行。
下面是使用本測試系統(tǒng)對于國產(chǎn)數(shù)據(jù)庫RedBase 7.5的測試數(shù)據(jù)。
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
綜合每小時查詢性能指標(biāo)(QphH@Size)即為性能測試的指標(biāo)。通過把測試用的原始數(shù)據(jù)量、并發(fā)用戶數(shù)、每個查詢與數(shù)據(jù)更新操作的處理時間等進(jìn)行綜合加權(quán)計算,即可得出綜合每小時查詢性能指標(biāo)(QphH@Size)。綜合性能指標(biāo)值越大越好。
在決策支持評測系統(tǒng)測試中,待測試系統(tǒng)規(guī)模參數(shù)的大小是衡量測試結(jié)果的決定性因素,但目前我們僅僅實現(xiàn)了O.1G數(shù)據(jù)規(guī)模的測試。在以后的工作中還需要根據(jù)硬件條件提高規(guī)模參數(shù)。
4結(jié)束語
根據(jù)本文所述決策支持評測系統(tǒng)的實現(xiàn)原理,本文設(shè)計實現(xiàn)了決策支持評測系統(tǒng)的網(wǎng)絡(luò)版,并且成功地利用它對國產(chǎn)數(shù)據(jù)庫Redbase進(jìn)行了測試。本文的工作不僅為數(shù)據(jù)庫決策支持功能的測試技術(shù)提供了參考,同時有助于Redbase數(shù)據(jù)庫的進(jìn)一步完善。
(注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。)