SQL select count(*) from v$session #當(dāng)前的連接數(shù) SQL Select count(*) from v$session where status='ACTIVE' #并發(fā)連接數(shù) SQL select value from v$parameter where name = 'processes' --數(shù)據(jù)庫允許的最大連接數(shù) SQL show parameter processes #最大連接 SQL select username,count(username) from v$session where username is not null group by username; #查看不同用戶的連接數(shù) 希望能幫到你
為賽罕等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及賽罕網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、成都網(wǎng)站制作、賽罕網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
用sql語句查看oracle當(dāng)前連接數(shù) 怎樣查看oracle當(dāng)前的連接數(shù)呢?只需要用下面的SQL語句查詢一下就可以了。
select * from v$session where username is not null
select username,count(username) from v$session where username is not null group by username #查看不同用戶的連接數(shù)
select count(*) from v$session #連接數(shù)
Select count(*) from v$session where status='ACTIVE' #并發(fā)連接數(shù)
show parameter processes #最大連接
SQL show parameter process
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 0
db_writer_processes integer 1
gcs_server_processes integer 0
job_queue_processes integer 10
log_archive_max_processes integer 2
processes integer 1500
alter system set processes = value scope = spfile;重啟數(shù)據(jù)庫 #修改連接
/home/oracle9i/app/oracle9i/dbs/init.ora
/home/oracle9i/app/oracle9i/dbs/spfilexxx.ora ## open_cursor
當(dāng) 前的連接數(shù)
select count(*) from v$process;
設(shè)置的最大連接數(shù)(默認(rèn)值 為150)
select value from v$parameter where name = 'processes';
修改最大連接數(shù)
alter system set processes = 300 scope = spfile; 重新啟動(dòng)
當(dāng)數(shù)據(jù)庫最大連接數(shù)不夠時(shí)會(huì)出現(xiàn)客戶端連接間歇性失敗,報(bào)錯(cuò)ORA-12519
查看session:
select * from v$session where username is not null
select username,count(username) from v$session where username is not null group by username
當(dāng)前連接數(shù):
select count(*) from v$process
查看連接數(shù)參數(shù)的設(shè)置情況
select value from v$parameter where name = 'processes'
Select count(*) from v$session where status='ACTIVE' #并發(fā)連接數(shù)
TPC-C學(xué)習(xí)筆記
摘錄:本文章來自:
TPC-C學(xué)習(xí)筆記
2?TPCC基準(zhǔn)測試
TPCC值被廣泛用于衡量C/S環(huán)境下,由服務(wù)器和客戶端構(gòu)筑的整體系統(tǒng)的性能,它由事物處理性能委員會(huì)(TPC,Transaction Processing Corp)制定,TPC為非贏利性國際組織。
TPCC值可以反映出系統(tǒng)的性能價(jià)格比。TPCC測試系統(tǒng)每分鐘處理的任務(wù)數(shù),單位為tpm,(transactions per minute)。系統(tǒng)的總體價(jià)格(單位為美元)除以TPCC值,就可以衡量出系統(tǒng)的性價(jià)比,系統(tǒng)的性價(jià)比值越小,系統(tǒng)的性價(jià)比越好。
需要注意的是,TPC-C值描述的是C/S整體系統(tǒng)的性能,它與系統(tǒng)的服務(wù)器和客戶機(jī)的性能都有關(guān)系,也就是說,同樣的服務(wù)器配置不同的客戶端將會(huì)影響TPCC值,任何廠商和測試者都可以根據(jù)TPC提供的測試規(guī)范構(gòu)造出自己最優(yōu)的系統(tǒng),當(dāng)然測試的結(jié)果要經(jīng)過TPC審核。
---------------------------------------------------------------------------------------------------------------
性能測試指標(biāo)介紹
TPC-C
作為一家非盈利性機(jī)構(gòu),事務(wù)處理性能委員會(huì)(TPC)負(fù)責(zé)定義諸如TPC-C、TPC-H和TPC-W基準(zhǔn)測試之類的事務(wù)處理與數(shù)據(jù)庫性能基準(zhǔn)測試,并依據(jù)這些基準(zhǔn)測試項(xiàng)目發(fā)布客觀性能數(shù)據(jù)。TPC基準(zhǔn)測試采用極為嚴(yán)格的運(yùn)行環(huán)境,并且必須在獨(dú)立審計(jì)機(jī)構(gòu)監(jiān)督下進(jìn)行。委員會(huì)成員包括大多數(shù)主要數(shù)據(jù)庫產(chǎn)品廠商以及服務(wù)器硬件系統(tǒng)供應(yīng)商。
相關(guān)企業(yè)參與TPC基準(zhǔn)測試以期在規(guī)定運(yùn)行環(huán)境中獲得客觀性能驗(yàn)證,并通過應(yīng)用測試過程中所使用的技術(shù)開發(fā)出更加強(qiáng)健且更具伸縮性的軟件產(chǎn)品及硬件設(shè)備。
TPC-C是一種旨在衡量聯(lián)機(jī)事務(wù)處理(OLTP)系統(tǒng)性能與可伸縮性的行業(yè)標(biāo)準(zhǔn)基準(zhǔn)測試項(xiàng)目。這種基準(zhǔn)測試項(xiàng)目將對(duì)包括查詢、更新及隊(duì)列式小批量事務(wù)在內(nèi)的廣泛數(shù)據(jù)庫功能進(jìn)行測試。許多IT專業(yè)人員將TPC-C視為衡量“真實(shí)”O(jiān)LTP系統(tǒng)性能的有效指示器。
TPC-C基準(zhǔn)測試針對(duì)一種模擬訂單錄入與銷售環(huán)境測量每分鐘商業(yè)事務(wù)(tpmC)吞吐量。特別值得一提的是,它將專門測量系統(tǒng)在同時(shí)執(zhí)行其它四種事務(wù)類型(如支付、訂單狀態(tài)更新、交付及證券級(jí)變更)時(shí)每分鐘所生成的新增訂單事務(wù)數(shù)量。獨(dú)立審計(jì)機(jī)構(gòu)將負(fù)責(zé)對(duì)基準(zhǔn)測試結(jié)果進(jìn)行公證,同時(shí),TPC將出據(jù)一份全面徹底的測試報(bào)告。這份測試報(bào)告可以從TPC Web站點(diǎn)()上獲得。
tpmC定義: TPC-C的吞吐量,按有效TPC-C配置期間每分鐘處理的平均交易次數(shù)測量,至少要運(yùn)行12分鐘。
1.TPC-C規(guī)范概要
TPC-C是專門針對(duì)聯(lián)機(jī)交易處理系統(tǒng)(OLTP系統(tǒng))的,一般情況下我們也把這類系統(tǒng)稱為業(yè)務(wù)處理系統(tǒng)。
TPC-C測試規(guī)范中模擬了一個(gè)比較復(fù)雜并具有代表意義的OLTP應(yīng)用環(huán)境:假設(shè)有一個(gè)大型商品批發(fā)商,它擁有若干個(gè)分布在不同區(qū)域的商品庫;每個(gè)倉庫負(fù)責(zé)為10個(gè)銷售點(diǎn)供貨;每個(gè)銷售點(diǎn)為3000個(gè)客戶提供服務(wù);每個(gè)客戶平均一個(gè)訂單有10項(xiàng)產(chǎn)品;所有訂單中約1%的產(chǎn)品在其直接所屬的倉庫中沒有存貨,需要由其他區(qū)域的倉庫來供貨。
該系統(tǒng)需要處理的交易為以下幾種:
New-Order:客戶輸入一筆新的訂貨交易;
Payment:更新客戶賬戶余額以反映其支付狀況;
Delivery:發(fā)貨(模擬批處理交易);
Order-Status:查詢客戶最近交易的狀態(tài);
Stock-Level:查詢倉庫庫存狀況,以便能夠及時(shí)補(bǔ)貨。
對(duì)于前四種類型的交易,要求響應(yīng)時(shí)間在5秒以內(nèi);對(duì)于庫存狀況查詢交易,要求響應(yīng)時(shí)間在20秒以內(nèi)。
邏輯結(jié)構(gòu)圖:
流程圖:
2.評(píng)測指標(biāo)
TPC-C測試規(guī)范經(jīng)過兩年的研制,于1992年7月發(fā)布。幾乎所有在OLTP市場提供軟硬件平臺(tái)的廠商都發(fā)布了相應(yīng)的TPC-C測試結(jié)果,隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,這些測試結(jié)果也在不斷刷新。
TPC-C的測試結(jié)果主要有兩個(gè)指標(biāo):
● 流量指標(biāo)(Throughput,簡稱tpmC)
按照TPC的定義,流量指標(biāo)描述了系統(tǒng)在執(zhí)行Payment、Order-status、Delivery、Stock-Level這四種交易的同時(shí),每分鐘可以處理多少個(gè)New-Order交易。所有交易的響應(yīng)時(shí)間必須滿足TPC-C測試規(guī)范的要求。
流量指標(biāo)值越大越好!
● 性價(jià)比(Price/Performance,簡稱Price/tpmC)
即測試系統(tǒng)價(jià)格(指在美國的報(bào)價(jià))與流量指標(biāo)的比值。
性價(jià)比越小越好!
---------------------------------------------------------------------------------------------------------------
[Oracle] How to Use Open Source Tools to Implement Your Own TPC-C
作者:Fenng
日期:Mar 14 2004 (v0.13)
出處:
版本:0.93
--------------------------------------------------------------------------------
本文簡介
介紹如何利用開源工具實(shí)現(xiàn)Oracle數(shù)據(jù)庫環(huán)境中的TPC-C.對(duì)DBA、開發(fā)人員、BI實(shí)施者有一定的參考價(jià)值.
引言描述
設(shè)想一下這樣一種情況:
您正在負(fù)責(zé)公司的一個(gè)OLTP類型的數(shù)據(jù)庫項(xiàng)目,面臨數(shù)據(jù)庫服務(wù)器選型的問題:如何選擇硬件才能滿足產(chǎn)品環(huán)境的業(yè)務(wù)要求? 這個(gè)事情是“拍腦袋” 能決定的嗎?
不可否認(rèn),硬件選型是一門藝術(shù),選擇合適的硬件,能給公司節(jié)省大筆的費(fèi)用,選擇不能滿足業(yè)務(wù)需求的服務(wù)器產(chǎn)品,不但花了冤枉錢,還會(huì)對(duì)將來的業(yè)務(wù)產(chǎn)生影響。
可能大家首先會(huì)想到參考服務(wù)器的TPC-C的信息。提到TPC-C,可能很多人對(duì)此都感到既熟悉又陌生,因?yàn)榻?jīng)常聽人說起,但是具體的問下去,能說清楚的又沒有多少人,而且,從大家口中得到的還不盡相同。那么什么是TPC/TPC-C這些都代表什么意思呢?
先說一下TPC-C,TPC-C是聯(lián)機(jī)事務(wù)處理(on-line transaction processing , OLTP)的基準(zhǔn)程序。TPC-C模擬一個(gè)批發(fā)商的貨物管理環(huán)境。TPC-C使用三種性能和價(jià)格度量,其中性能由TPC-C吞吐率衡量,單位是tpmC。tpm是transactions per minute的簡稱;C指TPC中的C基準(zhǔn)程序。它的定義是每分鐘內(nèi)系統(tǒng)處理的新訂單個(gè)數(shù)。
了解了這些內(nèi)容,您可能會(huì)想:我們公司的PC服務(wù)器完全是自己攢出來的,如何進(jìn)行TPC-C的衡量的?也去參考TPC官方站點(diǎn)上的信息?不要忘了,TPC.org 上公布的測試結(jié)果都是各大廠商根據(jù)自己的系統(tǒng)進(jìn)行了充分優(yōu)化之后的出來的結(jié)果。打個(gè)比方,TPC公布的數(shù)值就好比嶄新的法拉利跑車經(jīng)過專業(yè)技師們的精心檢查保養(yǎng),然后在專用跑道上跑出來的速度值,而我們的情況可能是法拉利(甚至是夏利)要在鄉(xiāng)村土路上行駛,可比性大打折扣。
有的朋友會(huì)想:那我們可以根據(jù)自己的情況,拿一個(gè)秒表在“鄉(xiāng)村土路”上測試一下看看呀。這樣的意義也是顯而易見的,對(duì)我們的實(shí)際的環(huán)境不是更具有參考價(jià)值?不錯(cuò),這也正是本文的目的:讓我們利用開源(Open Source)工具來實(shí)現(xiàn)自己的針對(duì)Oracle數(shù)據(jù)庫的TPC-C。
Hammerora—the Open Source Oracle Load Test Tool
首先介紹一下Hammerora。從創(chuàng)作者對(duì)這個(gè)工具的標(biāo)題描述可以看出,Hammerora是一款Oracle數(shù)據(jù)庫負(fù)載測試工具。該工具可以在Oracle 8i、9i和10g等版本上使用。當(dāng)前可以用在Linux/Unix和Windows上。初步實(shí)現(xiàn)了跨平臺(tái)。Hammerora 完全用TCL/TK寫就,以GPL版權(quán)形式發(fā)布。
作者是Steve Shaw。該項(xiàng)目的主頁在: 。
Hammerora的設(shè)計(jì)原理是解析Oracle的Trace文件,并把它們轉(zhuǎn)化為Oratcl程序,然后在Oracle數(shù)據(jù)庫中用多個(gè)用戶并發(fā)的對(duì)用戶的事務(wù)進(jìn)行“回放”。我們知道,Oracle的Trace文件能夠翔實(shí)的記錄用戶對(duì)數(shù)據(jù)庫的操作。這樣Hammerora能夠保證對(duì)用戶環(huán)境的真實(shí)模擬。
Hammerora最初是用以學(xué)習(xí)的目的:期望是模擬數(shù)據(jù)庫的一定數(shù)量的用戶。這樣一個(gè)小的基于家庭的學(xué)習(xí)開發(fā)系統(tǒng)就能夠比較接近產(chǎn)品環(huán)境。這個(gè)工具已經(jīng)成長為一個(gè)Oracle數(shù)據(jù)庫做壓力測試--從小的數(shù)據(jù)庫到大的基于RAC的集群。
TCL語言已經(jīng)用來提供高性能的和Oracle數(shù)據(jù)庫的OCI集成,而無需重新編譯生成的程序。每個(gè)生成的程序具有嚴(yán)格的TCL/Oratcl兼容性,并且可以在Hammerora的命令行Shell下運(yùn)行。TCL的強(qiáng)大功能和靈活性意味著潛在的功能是無窮盡的。TCL線程包用來實(shí)現(xiàn)對(duì)Oracle數(shù)據(jù)庫的多個(gè)并發(fā)連接。
Hammerora包含Oracle存儲(chǔ)過程和TCL驅(qū)動(dòng)腳本用來運(yùn)行TPC-C基準(zhǔn)程序。但是,我們先要構(gòu)建一個(gè)同TPC-C規(guī)范相符的數(shù)據(jù)庫。這樣,我們需要用到Orabm。
Orabm
Orabm是Geoff Ingram (High-Performance Oracle: Proven Methods for Achieving Optimum Performance and Availability一書的作者)構(gòu)建的一個(gè)程序包,包含了一套SQL腳本和幾個(gè)命令行程序。Orabm數(shù)據(jù)裝載程序(Orabmload)構(gòu)建了一組遵從TPC-C標(biāo)準(zhǔn)的數(shù)據(jù)用以測試。Orabm的程序包和源代碼可以從它的主頁面( ) 得到。
Orabm的運(yùn)行機(jī)制
Orabm的運(yùn)行機(jī)制在Geoff Ingram有明確的說明,這里翻譯如下:Orabm通過在每個(gè)用戶指定的并發(fā)數(shù)據(jù)庫會(huì)話(session) 中運(yùn)行用戶執(zhí)行數(shù)量的數(shù)據(jù)庫事務(wù)來進(jìn)行工作.事務(wù)通過ORABM模式下的ORABM_SERVERSIDE_STRESS存儲(chǔ)過程運(yùn)行。對(duì)每個(gè)并發(fā)會(huì)話來說,ORABM_SERVERSIDE_STRESS運(yùn)行在orabm命令行下指定的事務(wù)數(shù),并返回該會(huì)話在采樣間隔完成時(shí)的TPS值.要確保所有并發(fā)會(huì)話都是在采樣間隔期間處理事務(wù),TPS值僅包括事務(wù)的中間的80%,也即:初始的10%和最后的 10%將忽略掉。
更詳細(xì)信息可以參考 的內(nèi)容.
安裝步驟
1) 安裝Oracle OCI 庫
對(duì)Oracle 9i 來說,如果沒有安裝該組件的話,可能要重新運(yùn)行runInstall,在Oracle 9i Client products樹中選擇"Oracle Call Interfaces" .
對(duì)Oracle 10g來說,Oracle 10 OCI 庫應(yīng)該是默認(rèn)安裝的.
2) 安裝TCL
cd /usr/local/src/tcl8.4.5/unix
rm -f config.cache
./configure --enable-threads --enable-shared
make clean
make
make install
3 安裝TK
cd /usr/local/src/tk8.4.5/unix
rm -f config.cache
./configure --with-tcl=../../tcl8.4.5/unix --enable-threads --enable-shared
make clean
make
make install
4 安裝TCL Threads
cd /usr/local/src/thread2.5.2/unix
rm -f config.cache
sh ../configure --enable-threads --enable-shared
make clean
make
make install
5 安裝Oratcl
對(duì)10g來說,要編輯配置文件,在1728 行附近, FOUND_ORACLE=0 那一行的下面添加如下部分內(nèi)容:
echo "checking for Oracle 10.0 style toplevel (libclient10.a)" 1 6
echo "configure:1730: checking for Oracle 10 style toplevel(libclient10.a)" 5
for f in $oracle_directory $oratest1 $oratest2 $oratest3 \
$oracle4 /opt/oracle /u/oracle /usr/oracle /usr/local/oracle ; do
echo "$ac_t""looking for lib/libclient10.a in $f" 16
if test -r "$f/lib/libclient10.a" ; then
ORA="$f/lib"
ORACLE_HOME=$f
echo "$ac_t""setting ORA to $ORA" 16
testver=10
ORA_MAJOR_VERSION=10
ORA_MINOR_VERSION=0
FOUND_ORACLE=1
break
fi
done
export ORACLE_HOME=your_oracle_home_directory
cd /usr/local/src/oratcl-4-1-branch/unix
rm -f config.cache
sh ../configure --with-tcl=../../tcl8.4.5/unix \
--with-oracle-directory=$ORACLE_HOME --with-oracle-version=9 ( or 10 or 8! ) \
--enable-threads --enable-shared
vi Makefile - 把所有的 -rpath 改做 -Wl,-rpath,
make clean
make
make install
sqlplus orabm/orabm @delivery_sp.sql
sqlplus orabm/orabm @new_order_sp.sql
sqlplus orabm/orabm @ostat_sp.sql
sqlplus orabm/orabm @payment_sp.sql
sqlplus orabm/orabm @slev_sp.sql
步驟 操作 命令
1 創(chuàng)建 ORABM用戶(用TOOLS做默認(rèn)表空間,
TEMP 表空間為臨時(shí)表空間) sqlplus system/pwd @orabm_user
2 創(chuàng)建表 sqlplus system/pwd @orabm_tab
3 裝載數(shù)據(jù) $orabmload Warehouses 1
4 創(chuàng)建索引 sqlplus system/pwd @orabm_ind
5 分析表和索引 sqlplus system/pwd @orabm_analyze
6 創(chuàng)建壓力測試PL/SQL 過程 sqlplus system/pwd @orabm_serverside_stress
7 把表和索引數(shù)據(jù)緩沖到SGA sqlplus system/pwd @orabm_cache
把tpc-c.tcl腳本載入Hammerora中(要查看TCL文件注意把過濾正確的文件擴(kuò)展名:不是*.trc 而是*.tcl ),在該tpc-c.tcl中查找connect字符串,調(diào)整為你的數(shù)據(jù)庫用戶連接信息。并調(diào)整虛擬用戶信息。
測試運(yùn)行
運(yùn)行Hammerora,創(chuàng)建需要的用戶數(shù), 來模擬TPC-C 基準(zhǔn)程序(注意調(diào)整好執(zhí)行Hammerora程序的環(huán)境變量,最好直接用Oracle用戶來執(zhí)行).
TPC基準(zhǔn)程序及tpmc值
—兼談在使用性能度量時(shí)如何避免誤區(qū)
今天的用戶在選用平臺(tái)時(shí)面對(duì)的是一個(gè)繽紛繁雜的世界。用戶希望有一種度量標(biāo)準(zhǔn),能夠量化計(jì)算機(jī)系統(tǒng)的性能,以此作為選型的依據(jù)。作者曾在美國從事過數(shù)年計(jì)算機(jī)性能評(píng)價(jià)工作,深深體會(huì)到,計(jì)算機(jī)的性能很難用一兩種度量來 評(píng)價(jià),而且,任何度量都有其優(yōu)缺點(diǎn),尤其是當(dāng)使用者對(duì)性能度量了解不深時(shí),很容易被引入一些誤區(qū),甚至推演出錯(cuò)誤的結(jié)論。本文以TPC基準(zhǔn)程序?yàn)槔?,給出一 些實(shí)際建議,以幫助用戶避免進(jìn)入這些誤區(qū)。
一、什么是TPC和tpmC?
tpmC值在國內(nèi)外被廣 泛用于衡量計(jì)算機(jī)系統(tǒng)的事務(wù)處理能力。但究竟什么是tpmC值呢?作者曾向一些 用戶、推銷人員乃至某些國外大公司的技術(shù)人員問過這個(gè)問題,但回答的精確度 與tpmC值的流行程度遠(yuǎn)非相稱。tpmC這一度量也常被誤寫為TPM或TPMC。
1、TPC
TPC(Transaction Processing Performance Council,事務(wù)處理性能委員會(huì))是由數(shù)10家會(huì)員公司創(chuàng)建的非盈利組織,總部設(shè)在美國。該組織對(duì)全世界開放,但迄今為止,絕大多數(shù)會(huì)員都是美、 日、西歐的大公司。TPC的成員主要是計(jì)算機(jī)軟硬件廠家,而非計(jì)算機(jī)用戶,它的功 能是制定商務(wù)應(yīng)用基準(zhǔn)程序(Benchmark)的標(biāo)準(zhǔn)規(guī)范、性能和價(jià)格度量,并管理測 試結(jié)果的發(fā)布。
TPC的出版物是開放 的,可以通過網(wǎng)絡(luò)獲取()。TPC不給出基準(zhǔn)程序的代碼,而只 給出基準(zhǔn)程序的標(biāo)準(zhǔn)規(guī)范(Standard Specification)。任何廠家或其它測試者都可以根據(jù)規(guī)范,最優(yōu)地構(gòu)造出自己的系統(tǒng)(測試平臺(tái)和測試程序)。為保證測試結(jié)果的客觀性,被測試者(通常是廠家)必須提交給TPC一套完整的報(bào)告(Full Disclosure Report),包括被測系統(tǒng)的詳細(xì)配置、分類價(jià)格和包含五年維護(hù)費(fèi)用在內(nèi)的總價(jià) 格。該報(bào)告必須由TPC授權(quán)的審核員核實(shí)(TPC本身并不做審計(jì))?,F(xiàn)在全球只有幾個(gè)審核員,全部在美國。
2、tpmC
TPC已經(jīng)推出了四套基準(zhǔn)程序,被稱為TPC-A、TPC-B、TPC-C和TPC-D。其中A和B已經(jīng)過時(shí),不再使用了。TPC-C是在線事務(wù)處理(OLTP)的基準(zhǔn)程序,TPC-D是決策支持(Decision Support) 的基準(zhǔn)程序。TPC即將推TPC-E,作為大型企業(yè)(Enterprise)信息服務(wù)的基準(zhǔn)程序。
TPC-C模擬一個(gè)批發(fā) 商的貨物管理環(huán)境。該批發(fā)公司有N個(gè)倉庫,每個(gè)倉庫供應(yīng)10個(gè)地區(qū),其中每個(gè)地 區(qū)為3000名顧客服務(wù)。在每個(gè)倉庫中有10個(gè)終端,每一個(gè)終端用于一個(gè)地區(qū)。在運(yùn) 行時(shí),10×N個(gè)終端操作員向公司的數(shù)據(jù)庫發(fā)出5類請(qǐng)求。由于一個(gè)倉庫中不可能 存儲(chǔ)公司所有的貨物,有一些請(qǐng)求必須發(fā)往其它倉庫,因此,數(shù)據(jù)庫在邏輯上是 分布的。N是一個(gè)可變參數(shù),測試者可以隨意改變N,以獲得最佳測試效果。
TPC-C使用三種性能 和價(jià)格度量,其中性能由TPC-C吞吐率衡量,單位是tpmC。tpm是transactions per minute的簡稱;C指TPC中的C基準(zhǔn)程序。它的定義是每分鐘內(nèi)系統(tǒng)處理的新訂單個(gè)數(shù)。要注意的是,在處理新訂單的同時(shí),系統(tǒng)還要按表1的要求處理其它4類事務(wù) 請(qǐng)求。從表1可以看出,新訂單請(qǐng)求不可能超出全部事務(wù)請(qǐng)求的45%,因此,當(dāng)一個(gè) 系統(tǒng)的性能為1000tpmC時(shí),它每分鐘實(shí)際處理的請(qǐng)求數(shù)是2000多個(gè)。價(jià)格是指系 統(tǒng)的總價(jià)格,單位是美元,而價(jià)格性能比則定義為總價(jià)格÷性能,單位是$/tpmC。
二、如何衡量計(jì)算機(jī)系統(tǒng)的性能和價(jià)格
在系統(tǒng)選型時(shí),我們一定不要忘記我們是為特定用戶環(huán)境中的特定應(yīng)用選擇系統(tǒng)。切忌為了“與國際接 軌”而盲目套用“國際通用”的東西。在性能評(píng)價(jià)領(lǐng)域,越是通用的度量常常越是不準(zhǔn)確的。據(jù)我所知,美國的一些大用戶從不相信任何“國際通用”的度量,而是花相當(dāng)精力,比如預(yù)算的5%,使用自己的應(yīng)用來測試系統(tǒng),決定選型。在使用任何一種性能和價(jià)格度量時(shí),一定要弄明白該度量的定義,以及它是在什么系統(tǒng)配置和運(yùn)行環(huán)境下得到的,如何解釋它的意義等。下面我們由好到差討論三種方式。
1、在真實(shí)環(huán)境中運(yùn)行 實(shí)際應(yīng)用
最理想的方式是搞一個(gè)試點(diǎn),要求制造商或系統(tǒng)集成商配合將系統(tǒng)(含平臺(tái)、軟件和操作流程)在一個(gè) 實(shí)際用戶點(diǎn)真正試運(yùn)行一段時(shí)間。這樣,用戶不僅能看到實(shí)際性能,也能觀察到系統(tǒng)是否穩(wěn)定可靠、使用是否方便、服務(wù)是否周到、配置是否足夠、全部價(jià)格是否合理。如果一個(gè)部門需要購買一批同類的系統(tǒng),這種方式應(yīng)列為首選,因?yàn)樗粌H最精確、穩(wěn)妥,也常常最有效率,用戶還可先租一套系統(tǒng)作為試點(diǎn)。用這種方式得到的度量值常常具有很明確和實(shí)際的含義。
2、使用用戶定義的基準(zhǔn)程序
如果由于某種原因第一種方式不可行,用戶可以定義一組含有自己實(shí)際應(yīng)用環(huán)境特征的應(yīng)用基準(zhǔn)程序。 我舉兩個(gè)例子:近年來,由于R/3軟件是應(yīng)用層軟件,SAP公司的基準(zhǔn)程序獲得了越來越多國外企業(yè)的認(rèn)可;中國稅務(wù)總局最近也開發(fā)了自己的基準(zhǔn)程序,以幫助稅務(wù)系統(tǒng)進(jìn)行計(jì)算機(jī)選型。這種方式在中國尤其重要,因?yàn)橹袊男畔⑾到y(tǒng)有其特殊性。
3、使用通用基準(zhǔn)程序
如果第1種和第2種方式都不行,則使用如TPC-C之類的通用基準(zhǔn)程序,這是不得已的一種近似方法。因 此,tpmC值只能用作參考。我們應(yīng)當(dāng)注意以下幾點(diǎn):
(1)實(shí)際應(yīng)用是否與基準(zhǔn)程序相符
絕大多數(shù)基準(zhǔn)程序都是在美國制訂的,而中國的企事業(yè)單位與美國的運(yùn)作方式常常不一樣(恐怕也不應(yīng)該或不可能一樣)。在使用TPC-C時(shí),我們應(yīng)該清楚地知道:我的應(yīng)用是否符合批發(fā)商模式?事務(wù)請(qǐng)求是否與表1近似?對(duì)響應(yīng)時(shí)間的要求是否滿足表1?如果都不是,則tpmC值的參考價(jià)值就不太大了。
(2)TPC度量的解釋
TPC基準(zhǔn)程序是用來測系統(tǒng)而不是測主機(jī)的,廠家肯定要充分優(yōu)化他們的被測系統(tǒng)。此處的“系統(tǒng)”包括主機(jī)、外設(shè)(如硬盤或RAID)、主機(jī)端操作系統(tǒng)、數(shù)據(jù)庫軟件、客戶端計(jì)算機(jī)及其 操作系統(tǒng)、數(shù)據(jù)庫軟件和網(wǎng)絡(luò)連接等。在很多廠家的TPC測試系統(tǒng)中,主機(jī)的價(jià)格只是系統(tǒng)總價(jià)格的1/4或更小,而硬盤的價(jià)格有可能占到總價(jià)格的1/3以上,因?yàn)門PC-C要求被測系統(tǒng)必須保存180天的事務(wù)記錄。如果同樣的主機(jī)被用到用戶的環(huán)境中,廠家報(bào)的tpmC值就意義不大,因?yàn)橛脩舻膶?shí)際系統(tǒng)與廠家原來用于TPC測試的系統(tǒng)大不一樣。當(dāng)同樣的主機(jī)用在不同的系統(tǒng)中時(shí),tpmC值可能有相當(dāng)大的變化,現(xiàn)在很多用戶還沒有意識(shí)到這一點(diǎn)。
我舉一個(gè)例子。假設(shè)用 戶希望購買一批同類系統(tǒng),每一系統(tǒng)至少需要1GB的內(nèi)存和50GB的硬盤。廠家A、B、C 各報(bào)了三個(gè)價(jià)格相當(dāng)?shù)南到y(tǒng),tpmC值分別為3000、2800、2600。用戶是否應(yīng)該選廠 家A的產(chǎn)品呢?答案是:不一定。廠家用于測試tpmC值的系統(tǒng)與實(shí)際提供給用戶的系統(tǒng)配置大不一樣。tpmC最低的廠家C提供給用戶的系統(tǒng)反而有可能性能最好,不 論是以實(shí)際系統(tǒng)的tpmC值還是以用戶的實(shí)際應(yīng)用性能來衡量。
(3)TPC測試的成本
TPC-C和TPC-D都是很復(fù)雜的基準(zhǔn)程序,做一個(gè)嚴(yán)格的測試是很消耗資源的,廠家當(dāng)然不會(huì)說出他們花費(fèi)了多少錢和時(shí)間。但據(jù)國外知情人士透露,一個(gè)廠家做第一個(gè)TPC-C測試需 要幾十萬到上百萬美元的資金和半年左右的時(shí)間投入。因此,很多TPC的度量值都 是估計(jì)的。由于計(jì)算機(jī)系統(tǒng)換代頻繁,如果用戶一定要用通過審核的度量值,就必 須多等待半年時(shí)間,因此而不能用最先進(jìn)的系統(tǒng)。中國的廠家通過審核的時(shí)間則 更長。
綜上所述,我們對(duì)中國 用戶(尤其是大用戶)在計(jì)算機(jī)系統(tǒng)的選型方面有如下建議:
最好建立一個(gè)真實(shí)的試點(diǎn),因?yàn)閷?shí)際應(yīng)用環(huán)境是檢驗(yàn)計(jì)算機(jī)系統(tǒng)的最好標(biāo)準(zhǔn)。
中國的行業(yè)應(yīng)該建立符合自己實(shí)際應(yīng)用的基準(zhǔn)程序和測試標(biāo)準(zhǔn)。中國稅務(wù)總局的做法值得提倡。國家有關(guān)部門應(yīng)該建立獨(dú)立的測試中心,制定跨行業(yè)、符合中國企事業(yè)運(yùn)作模式的性能測試標(biāo)準(zhǔn)。
“國際通用”的度量可以作為參考值,而不應(yīng)作為必要條件。尤其是一定要弄清這些流行度量有什么含義,是在什么樣的系統(tǒng)環(huán)境中測得的,以及基準(zhǔn)程序是否符合企業(yè)真實(shí)的業(yè)務(wù)流程和運(yùn)作模式。
Trackback:
如果對(duì)您有幫助,請(qǐng)記得采納為滿意答案,謝謝!祝您生活愉快!
使用下面語句查詢所有會(huì)話:
select
*
from
v$session;
使用下面語句查詢所有活動(dòng)會(huì)話正在執(zhí)行的SQL語句:
SELECT
V$SESSION.LOGON_TIME,
--SESSION
登陸時(shí)間
V$SESSION.SID,
--SESSION
ID
V$SESSION.STATUS,
--SESSION狀態(tài)
V$SESSION.USERNAME,
--數(shù)據(jù)庫用戶名
V$SESSION.MACHINE,
--客戶端機(jī)器名
V$SESSION.PROGRAM,
--客戶端程序名稱
V$PROCESS.SPID,
--進(jìn)程ID
V$SQL.SQL_TEXT,
--執(zhí)行的SQL
DBA_JOBS_RUNNING.JOB
--如果是JOB,則顯示JOB的編號(hào)
FROM
V$SESSION,
V$SQL,
V$PROCESS,
DBA_JOBS_RUNNING
WHERE
V$SESSION.SQL_ID
=
V$SQL.SQL_ID
AND
V$SESSION.PADDR
=
V$PROCESS.ADDR(+)
AND
V$SESSION.SID
=
DBA_JOBS_RUNNING.SID(+)
AND
V$SESSION.STATUS
=
'ACTIVE'
AND
V$SESSION.USERNAME
IS
NOT
NULL
ORDER
BY
3,
1;
找出正在執(zhí)行的JOB編號(hào)及其會(huì)話編號(hào) SELECT SID,JOB FROM DBA_JOBS_RUNNING; 停止該JOB的執(zhí)行 SELECT SID,SERIAL# FROM V$SESSION WHERE SID='SID'; ALTER SYSTEM KILL SESSION 'SID,SERIAL'; EXEC DBMS_JOB.BROKEN(JOB,TRUE);實(shí)例分析:1,查詢正在運(yùn)行的Job,通過查詢有兩個(gè),和進(jìn)程占用較多的是兩個(gè)ORACLE進(jìn)程符合。SQL SELECT SID,JOB FROM DBA_JOBS_RUNNING; SID JOB\x0d\x0a---------- ----------12 11616 1172,查詢正在運(yùn)行的job的信息SQL SELECT SID,SERIAL# FROM V$SESSION WHERE SID='12'; SID SERIAL#\x0d\x0a---------- ----------\x0d\x0a12 4SQL SELECT SID,SERIAL# FROM V$SESSION WHERE SID='16'; SID SERIAL#\x0d\x0a---------- ----------\x0d\x0a16 13,利用查詢出來的job信息將job結(jié)束掉SQL ALTER SYSTEM KILL SESSION '12,4';System altered.SQL ALTER SYSTEM KILL SESSION '16,1';System altered.\x0d\x0a4,如果不希望運(yùn)行上述job的話,可以將job設(shè)置為broken.EXEC DBMS_JOB.BROKEN(116,TRUE);EXEC DBMS_JOB.BROKEN(117,TRUE);