日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

oracle事务数统计,Oracle 查询事务数

發(fā)布時(shí)間:2023/12/10 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle事务数统计,Oracle 查询事务数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

查詢“的”

首先想到的是v$transaction, 確認(rèn)這個(gè)思路是否正確:

執(zhí)行下面語(yǔ)句:

SQL> select * from v$transaction;

no rows selected

SQL>

發(fā)現(xiàn)居然為空,why? 這時(shí)恍然大悟,v$transaction記錄的是當(dāng)前事務(wù),下面來(lái)驗(yàn)證下:

SQL> conn test/test

sE9H5[O;|$E24558279Connected.ITPUB個(gè)人空間u3da4T%}B

SQL>

x1bVeljI$r24558279SQL>

i+ubQ.e*\Ks&k24558279SQL> insert into ttt values('1','2','3','4','5');

1 row created.

SQL>

我們先不提交,這時(shí)看看v$transaction表的情況:

SQL> select XIDUSN,XIDSLOT,XIDSQN,STATUS from v$transaction;

XIDUSN XIDSLOT XIDSQN STATUS

6w1n L\?#J`24558279 ---------- ---------- ---------- ----------------

u8E:@CRM/~#?x(|7E24558279 10 17 22579 ACTIVE

SQL>

發(fā)現(xiàn)已經(jīng) 有了一個(gè)事務(wù)記錄,這時(shí)我們commit

SQL> commit;

Commit complete.

SQL>

再來(lái)看看v$transaction表:

SQL> select XIDUSN,XIDSLOT,XIDSQN,STATUS from v$transaction;

no rows selected

SQL>

好,已經(jīng)為空,正面v$transaction視圖確實(shí)是記錄 的是當(dāng)前未提交事務(wù)

這個(gè)方法行不通,那我們還有什么好辦法嗯?

這時(shí),如果屬性或者STATSPACK的朋友會(huì)說(shuō),報(bào)告里不是有個(gè)事務(wù)數(shù)嗎?

不錯(cuò),確實(shí)有每秒事務(wù)數(shù),可是我要查詢的是每天的事務(wù)數(shù),怎么辦?

好,既然沒(méi)秒的知道了,那每天的我*60*60*24 不就是每天的嗎?

確實(shí)如此,我們分析一份報(bào)告看看:

Transactions:916.9

我們看這個(gè)每秒的事務(wù)數(shù)是916.9 ,那么916.9*60*60*24=79220160,每天的事務(wù)數(shù)是79220160,到此我們介紹了查詢每秒事務(wù)數(shù)的方法和查詢每天事務(wù)數(shù)的方法。

還有沒(méi)有第二種方法呢?

答案是必須的。

還是awr/STATSPACK報(bào)告,既然我們要查詢的是事務(wù)數(shù),那么事務(wù)數(shù)和什么有關(guān)系呢?當(dāng)然是commit啦,如果我們知道了commit數(shù),那么也就是變向知道了事務(wù)數(shù),所以第二種方法還是在awr/STATSPACK報(bào)告里,這時(shí)相信有朋友已經(jīng)想到了,不錯(cuò)和你想的一樣就是

user commits827,280916.901.00

這時(shí)大家該有疑問(wèn)了?

上面說(shuō)每天79220160次 ,怎么現(xiàn)在變成827,280次了,不錯(cuò),問(wèn)的好!我前面沒(méi)說(shuō)這份報(bào)告取的是一天的,實(shí)際這份報(bào)告取的是15分鐘零4秒的,那我們來(lái)算下:

828877.6 那為什么會(huì)多呢?因?yàn)?16.9是四舍五入的。

好第二種方法介紹完

我就不賣官司了,下面給大家介紹第三種方法

我們用實(shí)現(xiàn):

首先我們看看查詢每秒事務(wù)數(shù)的sql寫法:

SQL> col METRIC_UNIT for a30

lb(I.O4V#Om6F24558279SQL> select instance_number,

"A$Qm"_!sq?24558279 2 metric_unit,ITPUB個(gè)人空間r.z/|-Qg'{#\:swN

3 trunc(begin_time) time,

Ofj-k F24558279 4 round(avg(average), 2) average

%BU~Vlu24558279 5 from DBA_HIST_SYSMETRIC_SUMMARY

1Cfbo,A&m3b:AJ24558279 6 where metric_unit = 'Transactions Per Second'

!Zn6YC.g Z/i/k24558279 7 and begin_time >=ITPUB個(gè)人空間7@/eujaEy@#\

8 to_date('2013-01-21 00:00:00', 'yyyy-mm-dd hh24:mi:ss')

up:ZFh8SlP)m2Yx24558279 9 and begin_time < to_date('2013-01-22 00:00:00', 'yyyy-mm-dd hh24:mi:ss')ITPUB個(gè)人空間Fb{|5n},U

10 group by instance_number, metric_unit, trunc(begin_time)

nJ.gf"n pXT&q24558279 11 order by instance_number;

INSTANCE_NUMBER METRIC_UNIT TIME AVERAGE

2G-['a(S4J*Py&xO24558279--------------- ------------------------------ ------------ ----------ITPUB個(gè)人空間:V|&aQc#hMZ.a~xZ

1 Transactions Per Second 21-JAN-13 .17

測(cè)試環(huán)境空庫(kù),我們發(fā)現(xiàn)每秒事務(wù)數(shù)很少

下面是查詢每天事務(wù)數(shù):

SQL> select instance_number,

Dd2r0\^io24558279 2 metric_unit,

x@Ra%C9i!A@24558279 3 trunc(begin_time) time,ITPUB個(gè)人空間4f0ub%o!K9w/ie3G

4 avg(average)*60*60*24 "Transactions Per Day"

c&H4p2yDK&^4e24558279 5 from DBA_HIST_SYSMETRIC_SUMMARY

-AV~od-Dq3?_24558279 6 where metric_unit = 'Transactions Per Second'

EHH P!L7BU24558279 7 and begin_time >=

.Yz}.}p8PaEY24558279 8 to_date('2013-01-21 00:00:00', 'yyyy-mm-dd hh24:mi:ss')

3~I-`$V%j @t2|"E24558279 9 and begin_time < to_date('2013-01-22 00:00:00', 'yyyy-mm-dd hh24:mi:ss')ITPUB個(gè)人空間7y.J5x(KK E&i#a&A8b

10 group by instance_number, metric_unit, trunc(begin_time)

Lc6~I"P24558279 11 order by instance_number;

INSTANCE_NUMBER METRIC_UNIT TIME Transactions Per Day

4NbXT'~6d24558279--------------- ------------------------------ ------------ --------------------

(?KW-G9v+GN2H24558279 1 Transactions Per Second 21-JAN-13 14727.5308

是否還有第四種方法呢?

不錯(cuò)確實(shí)有,請(qǐng)看官方文檔:

4.52.37 Number of Transactions (per second)

下面我把官方文檔貼出來(lái),大家共同學(xué)習(xí):

DeltaCommits + DeltaRollbacks where:

DeltaCommits: difference of 'select value from v$sysstat where name='user commits'' between sample end and start

DeltaRollbacks: difference of 'select value from v$sysstat where name='user rollbacks'' between sample end and start

在2個(gè)時(shí)間段分別執(zhí)行上面語(yǔ)句,把2個(gè)結(jié)果相減即可得出這段時(shí)間內(nèi)的事務(wù)數(shù)。

根據(jù)這個(gè)方法,我寫出查詢某個(gè)用戶的時(shí)間段內(nèi)事務(wù)數(shù)的方法:

select s.USERNAME,sum(se.VALUE) "session transaction number",sum(sy.VALUE) " transaction number" from v$session s,v$sesstat se,v$sysstat sy

6g8F.V^Le.r\ _2G24558279where s.sid=se.SID and se.STATISTIC#=sy.STATISTIC#

u1eJ1e%T24558279and sy.NAME='user commits'

5j#g'@.~ nQ+m24558279and s.USERNAME=upper('&username')ITPUB個(gè)人空間rbk6nYx@"|$S0B+s

group by s.USERNAME;

使用方法和上面的一樣,需要在2個(gè)時(shí)間段分別運(yùn)行改腳本,把執(zhí)行結(jié)果相減,即可得出該時(shí)間段內(nèi)的事務(wù)數(shù)

總結(jié)

以上是生活随笔為你收集整理的oracle事务数统计,Oracle 查询事务数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。