【文章內(nèi)容簡(jiǎn)介】
機(jī)事務(wù)處理(OLTP)應(yīng)用環(huán)境工作量的一個(gè)衡量標(biāo)準(zhǔn),其并不實(shí)際表示某一個(gè)企業(yè)所進(jìn)行的操作,但是其高度提煉了所有企業(yè)都必須進(jìn)行的操作,比如管理或銷售產(chǎn)品或是服務(wù)。它模擬的是被復(fù)雜話了的聯(lián)機(jī)事務(wù)處理應(yīng)用環(huán)境的創(chuàng)建活動(dòng),其主要是把許多系統(tǒng)組成部件和特定環(huán)境關(guān)聯(lián)起來實(shí)現(xiàn)的 [1],這種環(huán)境具有如下的一些表現(xiàn): 能夠并行執(zhí)行的事務(wù)是有一定復(fù)雜度的 具有可在線處理事務(wù)執(zhí)行的模式 支持多個(gè)線終端活動(dòng) 較好地協(xié)調(diào)系統(tǒng)運(yùn)行和應(yīng)用程序執(zhí)行時(shí)間 通過 ACID 特性保證事務(wù)處理的正確性。 通過主鍵和外鍵能夠識(shí)別出分配高低優(yōu)先級(jí)數(shù)據(jù)訪問 數(shù)據(jù)庫由一些具有各種大小、屬性和關(guān)聯(lián)的基本表組成TPC_C 基準(zhǔn)的目標(biāo)就是要減少應(yīng)用層面的多變性,而保留一些重要的應(yīng)用特征,也即系統(tǒng)的實(shí)用性和復(fù)雜性。比如一些如登陸系統(tǒng)等操作,對(duì)于某些系統(tǒng)來說可能很重要,但是卻被 TPC_C 忽略掉。因?yàn)檫@些功能對(duì)于系統(tǒng)的分析來說并沒有太大的作用,他們占用系統(tǒng)的資源和執(zhí)行的頻率也不會(huì)很高。TPC_C 模仿的是一個(gè)分布在多個(gè)地區(qū)都有銷售點(diǎn)的公司,隨著公司業(yè)務(wù)的增長(zhǎng),新的 Warehouse 和銷售地區(qū)都會(huì)隨之建立,一個(gè)倉庫管理 10 個(gè)地區(qū),每個(gè)地區(qū)為 3,000 名客服服務(wù),所有的倉庫管理公司的 100,000 條銷售,客戶可以提交訂單訂購(gòu)商品,平均每個(gè)訂單包含 10 個(gè)訂單項(xiàng)。1%的訂購(gòu)商品不在本地庫存中,需要其它地區(qū)的倉庫發(fā)貨。 下圖說明了 TPC_C 應(yīng)用環(huán)境的邏輯結(jié)構(gòu):CustomersCompanyWarehouse1District10WarehouseWDistrict1 District23k1 2 30k圖 31 TPC_C 基準(zhǔn)邏輯結(jié)構(gòu)TPC_C的數(shù)據(jù)模型可描述為:a) 一個(gè)大型商品批發(fā)商擁有若干個(gè)分布在不同區(qū)域的商品庫。b) 每個(gè)倉庫負(fù)責(zé)為10個(gè)銷售點(diǎn)供貨。c) 每個(gè)銷售點(diǎn)為3000個(gè)客戶提供服務(wù) 。d) 每個(gè)客戶平均一個(gè)訂單有10 項(xiàng)產(chǎn)品。e) 所有訂單中約1%的產(chǎn)品在其直接所屬的倉庫中沒有存貨, 需要由其它區(qū)域的倉庫來供貨。 TPC_C 測(cè)試指標(biāo)TPCC測(cè)試規(guī)范經(jīng)過兩年的研制,于1992年7月發(fā)布。幾乎所有在OLTP市場(chǎng)提供軟硬件平臺(tái)的廠商都發(fā)布了相應(yīng)的TPCC測(cè)試結(jié)果,隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,這些測(cè)試結(jié)果也在不斷刷新。 TPCC的測(cè)試結(jié)果主要有兩個(gè)指標(biāo): 流量指標(biāo)(Throughput,簡(jiǎn)稱tpmC) tpmC 定義: TPCC 的吞吐量,按有效 TPCC 配置期間每分鐘處理的平均交易次數(shù)測(cè)量,至少要運(yùn)行 12 分鐘。按照TPC的定義,流量指標(biāo)描述了系統(tǒng)在執(zhí)行Payment 、Orderstatus、Delivery 、StockLevel這四種交易的同時(shí),每分鐘可以處理多少個(gè)NewOrder交易。所有交易的響應(yīng)時(shí)間必須滿足TPCC 測(cè)試規(guī)范的要求。流量指標(biāo)值越大越好。 性價(jià)比(Price/Performance,簡(jiǎn)稱Price/tpmC) 即測(cè)試系統(tǒng)價(jià)格(指在美國(guó)的報(bào)價(jià))與流量指標(biāo)的比值。 性價(jià)比越小越好。這個(gè)指標(biāo)對(duì)于Price無法確定,故在本次測(cè)試中不予考慮,重點(diǎn)考慮的是第一個(gè)性能指標(biāo)。結(jié)合 節(jié)提出的數(shù)據(jù)庫性能測(cè)試指標(biāo),包括吞吐量/處理能力、負(fù)載、響應(yīng)時(shí)間、同時(shí)在線用戶數(shù)量、TPS 等幾項(xiàng),TPC_C 基準(zhǔn)提供的五個(gè)事務(wù)模型各有其特點(diǎn):NEW ORDER 事務(wù)模仿在線用戶的訂單請(qǐng)求,用戶輸入一份完整的訂單,提交系統(tǒng)。該事務(wù)執(zhí)行頻率高,要求系統(tǒng)響應(yīng)時(shí)間短。PAYMENT 事務(wù)更新用戶的賬戶并反映出地區(qū)和倉庫的銷售狀況。該事務(wù)要求高頻讀寫,所以響應(yīng)時(shí)間必須要快才能滿足在線用戶的需求。ORDER STATUS 事務(wù)查詢客戶上一次訂單的狀態(tài),是一個(gè)只讀事務(wù),執(zhí)行頻率低,對(duì)系統(tǒng)的響應(yīng)時(shí)間要求不是很嚴(yán)格。STOCK LEVEL 事務(wù)模擬的是用戶從固定的倉庫和地區(qū)中選取最后 20 條記錄,檢查訂單中所有貨物的庫存,計(jì)算并且把所有庫存數(shù)低于用戶指定域的商品數(shù)量。這個(gè)事務(wù)是只讀事務(wù),執(zhí)行的頻率較低,對(duì)系統(tǒng)的響應(yīng)時(shí)間不做嚴(yán)格限制和要求。DELIVERY 事務(wù)模擬的是對(duì)于任意一個(gè)客戶,隨機(jī)選取一個(gè)發(fā)貨包,更新被處理的用戶的賬戶余額,并把該訂單從新訂單中刪除。這個(gè)事務(wù)的執(zhí)行頻率不高,對(duì)事物的響應(yīng)時(shí)間也沒有嚴(yán)格的限制。通過對(duì)這五個(gè)事務(wù)進(jìn)行配比的不同體現(xiàn)出事務(wù)的執(zhí)行頻率不同,而且每個(gè)事務(wù)的復(fù)雜程度不同,這就可以體現(xiàn)出事務(wù)的響應(yīng)時(shí)間的區(qū)別。在本次測(cè)試過程中,采取的方案是通過設(shè)置不同的 Vuser 數(shù)以測(cè)試系統(tǒng)的在線用戶數(shù),進(jìn)一步得到系統(tǒng)的 TPS、響應(yīng)時(shí)間等指標(biāo),具體測(cè)試方案詳見 節(jié)。 基于 TPC_C 基準(zhǔn)數(shù)據(jù)庫設(shè)計(jì) SQL Server 2022 中表的設(shè)計(jì)通過 節(jié)的介紹,TPC_C 的邏輯結(jié)構(gòu)圖表明了 TPC_C 的總體操作流程,為了實(shí)現(xiàn)這一結(jié)構(gòu),TPC_C 設(shè)計(jì)了九個(gè)相關(guān)的數(shù)據(jù)表,ER 關(guān)系圖如下:圖 32 TPC_C 基準(zhǔn) ER 圖表框里的數(shù)據(jù)表示該表存放的記錄數(shù),倉庫數(shù) W 體現(xiàn)了數(shù)據(jù)庫中的數(shù)據(jù)規(guī)模,表間的數(shù)據(jù)表示各表中記錄條數(shù)的比例關(guān)系,k 表示 1000。換句話說,給數(shù)據(jù)庫加載數(shù)據(jù)時(shí),如果給數(shù)據(jù)表 Warehouse 表裝入 l 條記錄的話,那么District 須裝入 10 條記錄,Customer 須裝入 3000 條記錄,history 須裝入 30000條記錄,Order 須裝入 30000 條記錄,NewOrder 須裝入 9000 條記錄,OrderLine 須裝入 300000 條記錄, Stock 須裝入 100000 條記錄。還需要注意的是,無論 Warehouse 表記錄為多少, item 表總數(shù)為 100000 條記錄,并不隨Warehouse 的記錄數(shù)增加而變化。由于本次測(cè)試采用的是單機(jī)測(cè)試,并且主機(jī)的配置不高,而實(shí)際每增加一個(gè)倉庫,數(shù)據(jù)庫就有數(shù)以萬計(jì)的數(shù)據(jù)加入,這將會(huì)花費(fèi)很多時(shí)間,所以Warehouse 的數(shù)目就做出限制,只有 warehouse1 和 warehouse2.具體的表如下圖所示:W a r e h o u s eW _ I D 2 * W u n i q u e I D s W _ N A M E v a r i a b l e t e x t , s i z e 1 0 W _ S T R E E T _ 1 v a r i a b l e t e x t , s i z e 2 0 W _ S T R E E T _ 2 v a r i a b l e t e x t , s i z e 2 0 W _ C I T Y v a r i a b l e t e x t , s i z e 2 0 W _ S T A T E f i x e d t e x t , s i z e 2 W _ Z I P f i x e d t e x t , s i z e 9 W _ T A X s i g n e d n u m e r i c ( 4 , 4 )W _ Y T D s i g n e d n u m e r i c ( 1 2 , 2 )D i s t r i c tD _ I D 2 0 u n i q u e I D sD _ W _ I D 2 * W u n i q u e I D s D _ N A M Ev a r i a b l e t e x t , s i z e 1 0 D _ S T R E E T _ 1 v a r i a b l e t e x t , s i z e 2 0 D _ S T R E E T _ 2 v a r i a b l e t e x t , s i z e 2 0 D _ C I T Y v a r i a b l e t e x t , s i z e 2 0D _ S T A T E f i x e d t e x t , s i z e 2 D _ Z I P f i x e d t e x t , s i z e 9D _ T A X s i g n e d n u m e r i c ( 4 , 4 )D _ Y T D s i g n e d n u m e r i c ( 1 2 , 2 )D _ N E X T _ O _ I D 1 0 , 0 0 0 , 0 0 0 u n i q u e I D sC u s t o m e rC _ I D 9 6 , 0 0 0 u n i q u e I D sC _ D _ I D 2 0 u n i q u e I D sC _ W _ I D 2 * W u n i q u e I D sC _ F I R S T v a r i a b l e t e x t , s i z e 1 6C _ M I D D L E f i x e d t e x t , s i z e 2C _ L A S T v a r i a b l e t e x t , s i z e 1 6C _ S T R E E T _ 1 v a r i a b l e t e x t , s i z e 2 0C _ S T R E E T _ 2 v a r i a b l e t e x t , s i z e 2 0C _ C I T Y v a r i a b l e t e x t , s i z e 2 0C _ S T A T E f i x e d t e x t , s i z e 2C _ Z I P f i x e d t e x t , s i z e 9C _ P H O N E f i x e d t e x t , s i z e 1 6C _ S I N C E d a t e a n d t i m eC _ C R E D I T f i x e d t e x t , s i z e 2C _ C R E D I T _ L I M s i g n e d n u m e r i c ( 1 2 , 2 )C _ D I S C O U N T s i g n e d n u m e r i c ( 4 , 4 )C _ B A L A N C E s i g n e d n u m e r i c ( 1 2 , 2 )C _ Y T D _ P A Y M E N T s i g n e d n u m e r i c ( 1 2 , 2 )C _ P A Y M E N T _ C N T n u m e r i c ( 4 )C _ D E L I V E R Y _ C N T n u m e r i c ( 4 )C _ D A T A v a r i a b l e t e x t , s i z e 5 0 0H i s t o r yH _ C _ I D 9 6 , 0 0 0 u n i q u e I D sH _ C _ D _ I D 2 0 u n i q u e I D sH _ C _ W _ I D 2 * W u n i q u e I D sH _ D _ I D 2 0 u n i q u e I D sH _ W _ I D 2 * W u n i q u e I D sH _ D A T E d a t e a n d t i m eH _ A M O U N T s i g n e d n u m e r i c ( 6 , 2 )H _ D A T A v a r i a b l e t e x t , s i z e 2 4N e w o r d e rN O _ O _ I D 1 0 , 0 0 0 , 0 0 0 u n i q u e I D sN O _ D _ I D 2 0 u n i q u e I D sN O _ W _ I D 2 * W u n i q u e I D sO r d e rO _ I D 1 0 , 0 0 0 , 0 0 0 u n i q u e I D sO _ D _ I D 2 0 u n i q u e I D sO _ W _ I D 2 * W u n i q u e I D sO _ C _ I D 9 6 , 0 0 0 u n i q u e I D sO _ E N T R Y _ D d a t e a n d t i m eO _ C A R R I E R _ I D 1 0 u n i q u e I D s , o r n u l lO _ O L _ C N T n u m e r i c ( 2 )O _ A L L _ L O C A L n u m e r i c ( 1 )O r d e r l i n eO L _ O _ I D 1 0 , 0 0 0 , 0 0 0 u n i q u e I D sO L _ D _ I D 2 0 u n i q u e I D sO L _ W _ I D 2 * W u n i q u e I D sO L _ N U M B E R 1 5 u n i q u e I D sO L _ I _ I D