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