顾美玲勾引管家|日韩黄色成人|国产精品theporn动漫|欧美日日日|国产精品探花在线

專(zhuān)業(yè)只做數(shù)據(jù)庫(kù)實(shí)訓(xùn)和認(rèn)證的品牌機(jī)構(gòu)

微信公眾號(hào)新浪微博
免費(fèi)咨詢(xún)電話(huà):400-0909-964
當(dāng)前位置: 網(wǎng)站首頁(yè) > pg大講堂 > PostgreSQL技術(shù)大講堂 - 第45講:poc-tpcc測(cè)試

PostgreSQL技術(shù)大講堂 - 第45講:poc-tpcc測(cè)試

文章來(lái)源: 更新時(shí)間:2024/2/28 16:53:08

在線老師點(diǎn)擊咨詢(xún):

最新學(xué)訊:近期OCP認(rèn)證正在報(bào)名中,因考試人員較多請(qǐng)盡快報(bào)名獲取最近考試時(shí)間,報(bào)名費(fèi)用請(qǐng)聯(lián)系在線老師,甲骨文官方認(rèn)證,報(bào)名從速!

我要咨詢(xún)


PostgreSQL從小白到專(zhuān)家,是從入門(mén)逐漸能力提升的一個(gè)系列教程,內(nèi)容包括對(duì)PG基礎(chǔ)的認(rèn)知、包括安裝使用、包括角色權(quán)限、包括維護(hù)管理、、等內(nèi)容,希望對(duì)熱愛(ài)PG、學(xué)習(xí)PG的同學(xué)們有幫助,歡迎持續(xù)關(guān)注CUUG PG技術(shù)大講堂。


第45講:POC-TPCC測(cè)試


PostgreSQL第45講:3月2日(周六)19:30,釘釘群(35822460)& 視頻號(hào)(數(shù)據(jù)庫(kù)老陳)直播

內(nèi)容1:TPC-C介紹

內(nèi)容2:TPC-C測(cè)試部署

內(nèi)容3:TPC-C報(bào)告


TPC背景介紹

TPC組織:

事務(wù)處理性能測(cè)試委員會(huì)TPC(Transaction process performance Council)是一個(gè)專(zhuān)門(mén)負(fù)責(zé)制定計(jì)算機(jī)事務(wù)處理能力測(cè)試標(biāo)準(zhǔn)并監(jiān)督其執(zhí)行的組織,其總部位于美國(guó),針對(duì)數(shù)據(jù)庫(kù)不同的使用場(chǎng)景TPC組織發(fā)布了多項(xiàng)測(cè)試標(biāo)準(zhǔn),其中被業(yè)界廣泛使用的有TPC-C 、TPC-E,TPC-H和TPC-DS,前兩者應(yīng)用到OLTP,后兩者應(yīng)用到OLAP場(chǎng)景。

OLTP與OLAP區(qū)別

聯(lián)機(jī)事務(wù)處理OLTP(on-line transaction processing) 主要是執(zhí)行基本日常的事務(wù)處理,比如數(shù)據(jù)庫(kù)記錄的增刪查改。比如在銀行的一筆交易記錄,就是一個(gè)典型的事務(wù)。高并發(fā),高性能,且滿(mǎn)足事務(wù)的ACID特性。

聯(lián)機(jī)分析處理OLAP(On-Line Analytical Processing) 是數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的主要應(yīng)用,支持復(fù)雜的分析操作,側(cè)重決策支持,并且提供直觀易懂的查詢(xún)結(jié)果。典型的應(yīng)用就是復(fù)雜的動(dòng)態(tài)的報(bào)表系統(tǒng)。對(duì)實(shí)時(shí)性要求不高,數(shù)據(jù)量大

測(cè)試標(biāo)準(zhǔn)-OLTP

OLTP測(cè)試模型一直是TPC組織的重點(diǎn)測(cè)試標(biāo)準(zhǔn),TPC-C測(cè)試模擬了一個(gè)比較復(fù)雜的OLTP應(yīng)用環(huán)境, 是一個(gè)在線零售公司,此公司對(duì)10W種商品進(jìn)行銷(xiāo)售,TPC-E是對(duì)TPC-C升級(jí)版本,但是目前POC選型時(shí)普通使用的仍然是TPC-C標(biāo)準(zhǔn),先簡(jiǎn)單介紹兩個(gè)標(biāo)準(zhǔn)的差異


TPC-C介紹

TPC-C業(yè)務(wù)數(shù)據(jù)模型:

tpc-c模擬的是一個(gè)在線零售公司,假如以一個(gè)倉(cāng)庫(kù)為例,倉(cāng)庫(kù)對(duì)10W種商品進(jìn)行銷(xiāo)售,具備針對(duì)用戶(hù)進(jìn)行水平擴(kuò)展的能力,即建立更多的倉(cāng)庫(kù)。

每個(gè)倉(cāng)庫(kù)負(fù)責(zé)10個(gè)區(qū)域,每個(gè)區(qū)域有單獨(dú)的訂單系統(tǒng),每個(gè)區(qū)域管理3000個(gè)顧客,因此一個(gè)倉(cāng)庫(kù)負(fù)責(zé)3W個(gè)客戶(hù)。樹(shù)狀圖如下圖

TPC-C業(yè)務(wù)數(shù)據(jù)模型:

TPC-C 業(yè)務(wù)涉及到的9張表以及ER圖介紹:

1)ITEM 商品信息表:10w條商品信息,保持不變

2)warehouse 倉(cāng)庫(kù)表:按需庫(kù)容,比如上圖表示有W個(gè)倉(cāng)庫(kù),則有W條記錄

3)Stock 庫(kù)存表:每個(gè)倉(cāng)庫(kù)有10W條商品的庫(kù)存信息,因此總數(shù)目為W*10w

4)district區(qū)域表: 每個(gè)倉(cāng)庫(kù)管理10個(gè)區(qū)域,因此有W*10條記錄

5) custoer客戶(hù)表:每個(gè)倉(cāng)庫(kù)負(fù)責(zé)10個(gè)區(qū)域,每個(gè)區(qū)域管理3000個(gè)客戶(hù),因此客戶(hù)數(shù)為W*3w

6 ) Order訂單表:每次客戶(hù)下單會(huì)生成一條記錄,會(huì)持續(xù)增長(zhǎng),不刪除,初始化為每個(gè)客戶(hù)一條訂單,因此初始值為W*3w

7) New-Order新訂單表:沒(méi)有發(fā)貨的訂單,發(fā)貨后即刪除,初始值為每個(gè)倉(cāng)庫(kù)9000條記錄,因此為W*9000

8)order-line訂單明細(xì)表:每個(gè)訂單會(huì)購(gòu)買(mǎi)5-15件商品(平均為10),對(duì)于每件商品都要記錄到這里,因此它的數(shù)目約為Order的10倍,會(huì)持續(xù)增長(zhǎng),不刪除,初始值為W*30w

9) history表:歷史信息表,沒(méi)有主鍵,不需要查詢(xún),每次支付的時(shí)候生成一條記錄,初始值為W*3w條

TPC-C業(yè)務(wù)數(shù)據(jù)模型:


TPC-C測(cè)試部署

1、安裝JAVA (root)

gzip -d jdk-8u40-linux-x64.gz

tar –vxf jdk-8u40-linux-x64 -C /usr/local

2、安裝ant (root)

unzip apache-ant-1.9.15-bin.zip

mv apache-ant-1.9.15 /usr/local/

3、配置pg環(huán)境變量

export JAVA_HOME=/usr/local/jdk1.8.0_40

export PATH=$JAVA_HOME/bin:$PATH:/usr/local/apache-ant-1.9.15/bin/

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib:/usr/local/apache-ant-1.9.15/lib/ant-launcher.jar

4、解壓安裝包benchmarksql (pg)

unzip benchmarksql-5.0.zip

cd benchmarksql-5.0/

ant #執(zhí)行ant命令

5、編輯PG相關(guān)運(yùn)行參數(shù)

cd run/

vim props.pg

props.pg文件內(nèi)容:

db=postgres

driver=org.postgresql.Driver

conn=jdbc:postgresql://localhost:1922/tpcc

user=tpcc

password=123456

//warehouses與后面生成數(shù)據(jù)時(shí)指定的warehouses值要一致,根據(jù)客戶(hù)實(shí)際的需求設(shè)置

warehouses=10

//并發(fā)客戶(hù)端

terminals=10

runTxnsPerTerminal=0

//運(yùn)行時(shí)長(zhǎng),單位為分鐘

runMins=3

limitTxnsPerMin=10000

//Set to true to run in 4.x compatible mode. Set to false to use the

//entire configured database evenly.

terminalWarehouseFixed=true

//The following five values must add up to 100

//The default percentages of 45, 43, 4, 4 & 4 match the TPC-C spec,測(cè)試結(jié)果要達(dá)到下面每張表的交易要求才算通過(guò)

newOrderWeight=45

paymentWeight=43

orderStatusWeight=4

deliveryWeight=4

stockLevelWeight=4

6、PG數(shù)據(jù)庫(kù)上創(chuàng)建tpcc數(shù)據(jù)庫(kù)以及tpcc用戶(hù),密碼為123456

7、建立測(cè)試庫(kù),并加載數(shù)據(jù)

./runDatabaseBuild.sh props.pg

8、運(yùn)行基準(zhǔn)測(cè)試

./runBenchmark.sh props.pg

測(cè)試結(jié)果

07:55:13,970 [Thread-1] INFO jTPCC : Term-00,

07:55:13,970 [Thread-1] INFO jTPCC : Term-00,

07:55:13,970 [Thread-1] INFO jTPCC : Term-00, Measured tpmC (NewOrders) = 3814.05

07:55:13,970 [Thread-1] INFO jTPCC : Term-00, Measured tpmTOTAL = 8499.38

07:55:13,970 [Thread-1] INFO jTPCC : Term-00, Session Start = 2022-01-04 07:52:13

07:55:13,970 [Thread-1] INFO jTPCC : Term-00, Session End = 2022-01-04 07:55:13

07:55:13,970 [Thread-1] INFO jTPCC : Term-00, Transaction Count = 25499

3814.05 TpmC //每分鐘處理完成的事務(wù)數(shù),該值=第一次統(tǒng)計(jì)結(jié)果 new-order成功事務(wù)數(shù)/總運(yùn)行時(shí)間(分鐘)

生成html測(cè)試結(jié)果

1、安裝R命令

yum install epel-release

yum install R

2、產(chǎn)生html報(bào)告

./generateReport.sh my_result_2022-01-17_094510

3、報(bào)告指標(biāo)

New-Order :新訂單

Payment:支付

Order-Status:訂單查詢(xún)

Delivery:發(fā)貨

Stock-Level :庫(kù)存

4、html報(bào)告(5個(gè)倉(cāng)庫(kù))

[transaction percentage]

New-Orders:45.112%(>=45.0%) [OK]

Payment: 42.681% (>=43.0%) [NG]

Order-Status: 4.166% (>= 4.0%) [OK]

Delivery: 4.017% (>= 4.0%) [OK]

Stock-Level: 4.024% (>= 4.0%) [OK]

[response time (at least 90% passed)] //響應(yīng)耗時(shí)指標(biāo)必須超過(guò)90%通過(guò)才行

New-Order: 99.481% [OK]

Payment: 99.4% [OK]

Order-Status: 99.97% [OK]

Delivery: 99.99% [OK]

Stock-Level: 99.72% [OK]

Overall tpmC: 4324.00

Overall tpmTotal: 9585.00

4、html報(bào)告(10個(gè)倉(cāng)庫(kù))

[transaction percentage]

New-Orders:44.687%(<=45.0%) [NG]

Payment: 43.293% (>=43.0%) [OK]

Order-Status: 3.904% (<= 4.0%) [NG]

Delivery: 4.204% (>= 4.0%) [OK]

Stock-Level: 3.912% (<= 4.0%) [NG]

[response time (at least 90% passed)] //響應(yīng)耗時(shí)指標(biāo)必須超過(guò)90%通過(guò)才行

New-Order: 99.06% [OK]

Payment: 99.01% [OK]

Order-Status: 99.62%[OK]

Delivery: 99.93% [OK]

Stock-Level: 99.83% [OK]

Overall tpmC: 3975.33

Overall tpmTotal: 8896.00

數(shù)據(jù)一致性驗(yàn)證

6條驗(yàn)證數(shù)據(jù)一致性的sql,通過(guò)驗(yàn)證倉(cāng)庫(kù)和區(qū)域收入是否相等來(lái)判斷數(shù)據(jù)是否一致,預(yù)期以下6條sql結(jié)果都為0

第一條:

SELECT distinct w_ytd - ytd_sum

FROM bmsql_warehouse LEFT JOIN

(SELECT d_w_id, SUM(d_ytd) AS ytd_sum

FROM bmsql_district

GROUP BY d_w_id) d

ON w_id = d_w_id;

第二條:

select distinct * from

(SELECT (D_NEXT_O_ID - 1 - max_o_id) as id

FROM bmsql_district LEFT JOIN

(SELECT o_w_id, o_d_id, MAX(o_id) AS max_o_id

FROM bmsql_oorder

GROUP BY o_w_id, o_d_id) o

ON d_w_id = o_w_id AND d_id = o_d_id

ORDER BY d_w_id, d_id) tmp ;

第三條:

select distinct * from

(SELECT D_NEXT_O_ID - 1 - max_o_id

FROM bmsql_district LEFT JOIN

(SELECT no_w_id, no_d_id, MAX(no_o_id) AS max_o_id

FROM bmsql_NEW_order

GROUP BY no_w_id, no_d_id)

no_w_id ON d_w_id = no_w_id

AND d_id = no_d_id

ORDER BY d_w_id, d_id) as tmp;

第四條:

select distinct (count(no_o_id)-(max(no_o_id)-min(no_o_id)+1)) as diff

from bmsql_NEW_order

group by no_w_id,no_d_id;

第五條:

select distinct * from

(SELECT sum_cnt - count_id

FROM

( SELECT o_w_id, o_d_id, SUM(o_ol_cnt) as sum_cnt

FROM bmsql_oorder

GROUP BY o_w_id, o_d_id ) o LEFT JOIN

( SELECT ol_w_id, ol_d_id, COUNT(ol_o_id) count_id FROM bmsql_order_line

GROUP BY ol_w_id, ol_d_id )

ol_w_id ON o_w_id =ol_w_id AND o_d_id = ol_d_id) tmp;

第六條:

SELECT distinct sum_ytd - w_ytd

FROM

( SELECT d_w_id, SUM(d_ytd) AS sum_ytd

FROM bmsql_district

GROUP BY d_w_id) d

LEFT JOIN bmsql_warehouse w ON d_w_id = w_id;


CUUG PostgreSQL技術(shù)大講堂系列公開(kāi)課第45講-POC-TPCC測(cè)試的內(nèi)容,往期視頻及文檔,請(qǐng)聯(lián)系CUUG。

本文地址:http://m.mudan321.com/pgdjt/36535999994.html 轉(zhuǎn)載請(qǐng)注明!


PostgreSQL入門(mén)到精通 100+ 個(gè)學(xué)習(xí)資料

Oracle培訓(xùn)機(jī)構(gòu)

金牌講師<>

冉乃綱-老師CUUG金牌講師
冉老師 CUUG金牌講師 Oracle及RedHat高級(jí)講師、Unix/Linux 資深專(zhuān)家...[詳細(xì)了解老師]

免費(fèi)咨詢(xún)上課流程 客服在線中

陳衛(wèi)星-老師CUUG金牌講師
陳老師 CUUG金牌講師 精通Oracle管理、備份恢復(fù)、性能優(yōu)化 11年Ora...[詳細(xì)了解老師]

免費(fèi)咨詢(xún)上課流程 客服在線中

選學(xué)校如何選擇適合自己的學(xué)校

CUUG -CHINA UNIX USER GROUP,是國(guó)際UNIX組織UNIFORUM的中國(guó)代表,是國(guó)內(nèi)悠久的專(zhuān)業(yè)UNIX培訓(xùn)機(jī)構(gòu),被譽(yù)為中國(guó)UNIX 的搖籃。多年來(lái),以提高教學(xué)質(zhì)量為本,強(qiáng)調(diào)素質(zhì)教育,積極引進(jìn)、消化國(guó)外的新技術(shù),有效的結(jié)合中國(guó)....[詳情]

一站式服務(wù)(從入學(xué)到就業(yè)一幫到底)

入學(xué)

學(xué)習(xí)

就業(yè)

實(shí)操

食宿
地址:北京市海淀區(qū)田村山南路35號(hào)院17號(hào)樓
課程咨詢(xún): 400-0909-964
企業(yè)服務(wù):137 1818 8639(陳經(jīng)理)
部分信息來(lái)源于網(wǎng)絡(luò),如有錯(cuò)誤請(qǐng)聯(lián)系指正!
版權(quán)所有@北京神腦資訊技術(shù)有限公司 (CUUG,中國(guó)UNIX用戶(hù)協(xié)會(huì)) Copyright 2016 ALL Rights Reserved 京ICP備11008061號(hào)-1