致力于自动化测试技术,性能测试技术的研究,测试技术培训以及项目实施,做一个技术与实施的主导者。

动态性能表-第一篇--v$sysstat

上一篇 / 下一篇  2010-10-15 10:51:12 / 个人分类:Oracle

学习动态性能表

第一篇--v$sysstat 

X9NRn]/|:_1vo0

5q Z!uV ER0  按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。

gv[-GM)@ _oo0

y%CO?{-k|.yI$w0类似于v$sesstat,该视图存储下列的统计信息:51Testing软件测试网1~0boh1MuR/o3p

1>.事件发生次数的统计(如:user commits)

a*s'UUU(QU0

2>.数据产生,存取或者操作的total(如:redo size)

J)W H5l#J&WG;U:@P a0

3>.如果TIMED_STATISTICS值为true,则统计花费在执行操作上的总时间(如:CPU used by this session)51Testing软件测试网!j"E hl%k3w+B-K

u yg,g2kp4n/|3o^0v$sysstat视图常用列介绍:

MJi%u+Jhh0g0

l        STATISTIC#:标识51Testing软件测试网)I/|#]zK

l        NAME:统计项名称

l8c.hp@x0

l        VALUE:资源使用量

}vLDgD~A$m/h0

该视图还有一列class-统计类别但极少会被使用,各类信息如下:51Testing软件测试网}Y/j0w#N%~s Jy

1代表事例活动51Testing软件测试网9^w%J?w(b"w

2代表Redo buffer活动

s4@zm'@/a?0

4代表锁

)B@6soB.k9G kNm0

8代表数据缓冲活动

R7~*V2pKlf:^_0

16代表OS活动51Testing软件测试网KvF R2\

32代表并行活动51Testing软件测试网/`~mG8Z8V5Ns,T/NH]

64代表表访问51Testing软件测试网A,q!t^H Q

128代表调试信息51Testing软件测试网6wwNw7?[GxO

L*J*eO t5g0注意:Statistic#的值在不同版本中各不相同,使用时要用Name做为查询条件而不要以statistic#的值做为条件。

'|Y } D+JmO051Testing软件测试网~$X.|$|Fb#k

使用v$sysstat中的数据51Testing软件测试网SP T m(f:PbQY

t#paq0W0  该视图中数据常被用于监控系统性能。如buffer cache命中率、软解析率等都可从该视图数据计算得出。51Testing软件测试网4y(iZLc/b@*H

51Testing软件测试网}CC$M@i%I#up

  该视图中的数据也被用于监控系统资源使用情况,以及系统资源利用率的变化。正因如此多的性能数据,检查某区间内系统资源使用情况可以这样做,在一个时间段开始时创建一个视图数据快照,结束时再创建一个,二者之间各统计项值的不同(end value - begin value)即是这一时间段内的资源消耗情况。这是oracle工具的常用方法,诸如Statspack以及BSTAT/ESTAT都是如此。51Testing软件测试网u)eh-FfF/?

;KI$U d1I]0  为了对比某个区间段的数据,源数据可以被格式化(每次事务,每次执行,每秒钟或每次登陆),格式化后数据更容易从两者中鉴别出差异。这类的对比在升级前,升级后或仅仅想看看一段时间内用户数量增长或数据增加如何影响资源使用方面更加实用。

L$h Ia(Z6o)Y0

5@#\2P;TUDi|6o%a0  你也可以使用v$sysstat数据通过查询v$system_event视图来检查资源消耗和资源回收。

{4u9BKN'f$} g,eZ0

'J3m Q:n [7z0V$SYSSTAT中的常用统计

;@*@,B(~a051Testing软件测试网4x*{bky.hW-T

  V$SYSSTAT中包含多个统计项,这部分介绍了一些关键的v$sysstat统计项,在调优方面相当有用。下列按字母先后排序:51Testing软件测试网/A,s8z/F { u%P

51Testing软件测试网E} \&y QP \v

数据库使用状态的一些关键指标:

f)c!Ij@ I5W|,A b;s0

l        CPU used by this session:所有sessioncpu占用量,不包括后台进程。这项统计的单位是百分之x.完全调用一次不超过10ms

nLZaE1R ~D U7?Y0

l        db block changes:那部分造成SGA中数据块变化的insert,updatedelete操作数这项统计可以大概看出整体数据库状态。在各项事务级别,这项统计指出脏缓存比率。51Testing软件测试网1\)UW9S!K~g`#[UZ

l        execute count:执行的sql语句数量(包括递归sql)51Testing软件测试网lP%oI6|0K

l        logons current:当前连接到实例的Sessions。如果当前有两个快照则取平均值。51Testing软件测试网%KT yz7pLu2HW

l        logons cumulative:自实例启动后的总登陆次数。

9U8w2M5Xuj/c9^0

l        parse count (hard):在shared pool中解析调用的未命中次数。当sql语句执行并且该语句不在shared pool或虽然在shared pool但因为两者存在部分差异而不能被使用时产生硬解析。如果一条sql语句原文与当前存在的相同,但查询表不同则认为它们是两条不同语句,则硬解析即会发生。硬解析会带来cpu和资源使用的高昂开销,因为它需要oracleshared pool中重新分配内存,然后再确定执行计划,最终语句才会被执行。51Testing软件测试网gr3F)ZS'~iG

l        parse count (total):解析调用总数,包括软解析和硬解析。当session执行了一条sql语句,该语句已经存在于shared pool并且可以被使用则产生软解析。当语句被使用(即共享)所有数据相关的现有sql语句(如最优化的执行计划)必须同样适用于当前的声明。这两项统计可被用于计算软解析命中率。51Testing软件测试网M2{5_e#_]h

l        parse time cpu:总cpu解析时间(单位:10ms)。包括硬解析和软解析。

p.X%z*S*h,y&L B0

l        parse time elapsed:完成解析调用的总时间花费。51Testing软件测试网(U@+^&CeJ$wL/l#M

l        physical readsOS blocks read数。包括插入到SGA缓存区的物理读以及PGA中的直读这项统计并非i/o请求数。51Testing软件测试网 Es'c+a:G'gi

l        physical writes:从SGA缓存区被DBWR写到磁盘的数据块以及PGA进程直写的数据块数量。

l%]6?5ug(GCL-[3v0

l        redo log space requests:在redo logs中服务进程的等待空间,表示需要更长时间的log switch51Testing软件测试网Xi_ N_ J

l        redo sizeredo发生的总次数(以及因此写入log buffer),以byte为单位。这项统计显示出update活跃性。51Testing软件测试网RF(`&FV@

l        session logical reads:逻辑读请求数。

ZpNIJ(u nu0

l        sorts (memory) and sorts (disk)sorts(memory)是适于在SORT_AREA_SIZE(因此不需要在磁盘进行排序)的排序操作的数量。sorts(disk)则是由于排序所需空间太大,SORT_AREA_SIZE不能满足而不得不在磁盘进行排序操作的数量。这两项统计通常用于计算in-memory sort ratio

Y(WQ!Yp0

l        sorts (rows):列排序总数。这项统计可被'sorts (total)'统计项除尽以确定每次排序的列。该项可指出数据卷和应用特征。51Testing软件测试网dW2s0n[Z'i

l        table fetch by rowid:使用ROWID返回的总列数(由于索引访问或sql语句中使用了'where rowid=&rowid'而产生)

M-yn$j'YML'e${0

l        table scans (rows gotten):全表扫描中读取的总列数51Testing软件测试网[N0g\6m2sf

l        table scans (blocks gotten):全表扫描中读取的总块数,不包括那些split的列。

U jD4d?a0

l        user commits + user rollbacks:系统事务起用次数。当需要计算其它统计中每项事务比率时该项可以被做为除数。例如,计算事务中逻辑读,可以使用下列公式:session logical reads / (user commits + user rollbacks)

qAd5^7I eU}0

注:SQL语句的解析有软解析soft parse与硬解析hard parse之说,以下是5个步骤:

'Vq[3m v0

1:语法是否合法(sql写法)

qh,ZB H;T2Y0

2:语义是否合法(权限,对象是否存在)51Testing软件测试网F-vwlO4c

3:检查该sql是否在公享池中存在51Testing软件测试网*blysGi

--如果存在,直接跳过45,运行sql.此时算soft parse51Testing软件测试网2MIySo

4:选择执行计划

.L E+Ll6w5O2a/e~0fB']0

5:产生执行计划51Testing软件测试网!g`n#b\

--如果5个步骤全做,这就叫hard parse.

P'w#XY:B4YkV051Testing软件测试网1?_!p,wri(BO

注意物理I/O

I#i"Jr#qC|Abk&Ly051Testing软件测试网m3V j`{s7`

  oracle报告物理读也许并未导致实际物理磁盘I/O操作。这完全有可能因为多数操作系统都有缓存文件,可能是那些块在被读取。块也可能存于磁盘或控制级缓存以再次避免实际I/OOracle报告有物理读也许仅仅表示被请求的块并不在缓存中。

_6c F9_"a2kFAC |051Testing软件测试网Z1M\0N%Q7D

V$SYSSTAT得出实例效率比(Instance Efficiency Ratios)

,K9~8P){S4UG051Testing软件测试网eax5jcb$eJ b

下列是些典型的instance efficiency ratiosv$sysstat数据计算得来,每项比率值应该尽可能接近1

9Dx%eFw-kt5X?0

l        Buffer cache hit ratio:该项显示buffer cache大小是否合适。

-h6G4A6ibz2z051Testing软件测试网uCp Y9a3x)z(d

公式:1-((physical reads-physical reads direct-physical reads direct (lob)) / session logical reads)

;e(L+q|d%H0GA.o0

z]"DB-cC0执行:

-lV7I1\Or,kG0

(}naRf+O[O|V MH/t R0select1-((a.value-b.value-c.value)/d.value)51Testing软件测试网+CYXm9x-\)Mb'e/?/PS

|4Rb i:R!{0 fromv$sysstat a,v$sysstat b,v$sysstat c,v$sysstat d51Testing软件测试网/CGMO n(wFF

Ju\ [4?~]&Nz0ZG1Y:q0 wherea.name='physical reads'and

\Q*_a*U!OhCc2s051Testing软件测试网1V,V7\8l"P

        b.name='physical reads direct'and51Testing软件测试网9z*kw"|/Z8d

EH E0C/ay0        c.name='physical reads direct (lob)'and51Testing软件测试网_]$h lk?

51Testing软件测试网wo(\A/z]Y tU?

        d.name='session logical reads';

}(mq.^&Mx+I0

l        Buffer hit ratio:该项显示buffer命中率。

o5GkgQ2co&i0

!z9nQ!|^ u}m0公式:1-(physical reads/ (db block gets+consistent gets))51Testing软件测试网oL'?2l2n0Hi9}u)O

51Testing软件测试网!N5[ `%w;dx

执行:

{` T3_u3Gs'`)}051Testing软件测试网GC-b8u5n*rc;du

select1- (sum(decode(name,'physical reads',value,0)) /51Testing软件测试网${X%X w8gE h6EO

n g }3R$eg0       (sum(decode(name,'db block gets',value,0)) +

^.{.CfmLQ051Testing软件测试网Dh6j)ze GhA-X B

      sum(decode(name,'consistent gets',value,0))))51Testing软件测试网pq0["Kp&S1@K"X[P%B

51Testing软件测试网 w*k4p/zjI} JR

      "Buffer Hit Ratio"51Testing软件测试网&@)t5E j v

51Testing软件测试网C _3v&\2IC9S

fromv$sysstat;

#VI }:g#u6?&p"|D?0

l        Soft parse ratio:这项将显示系统是否有太多硬解析。该值将会与原始统计数据对比以确保精确。例如,软解析率仅为0.2则表示硬解析率太高。不过,如果总解析量(parse count total)偏低,这项值可以被忽略。51Testing软件测试网 R3?]Fz'xh%Z'I

1Ir1e ^Db0公式:1 - ( parse count (hard) / parse count (total) )51Testing软件测试网9r6G,]+E8OS c

;nc J;N(Z0执行:51Testing软件测试网&lYaGz @9_}

51Testing软件测试网a1g'K MIARo

select1-(a.value/b.value)51Testing软件测试网e|F:~i:S u2K~

HvI,r ^/Q]bx0 fromv$sysstat a,v$sysstat b51Testing软件测试网;U;{"t:R5u ZJ

O+d&S Fr0 Wherea.name='parse count (hard)'andb.name='parse count (total)';

m e$K7`5C0

l        In-memory sort ratio:该项显示内存中完成的排序所占比例。最理想状态下,在OLTP系统中,大部分排序不仅小并且能够完全在内存里完成排序。51Testing软件测试网9?9r2\(V.{-X

51Testing软件测试网([;q,qGc|H

公式:sorts (memory) / ( sorts (memory) + sorts (disk) )51Testing软件测试网 s4m I2W*\ l;_4V

w(U$F6A$w q['g0执行:

4q#Pr%ltP `%U051Testing软件测试网2EGo+`[8Yx(}

selecta.value/(b.value+c.value)51Testing软件测试网%B#zkiU+Cu

51Testing软件测试网/SVYl W6hj0sz

 fromv$sysstat a,v$sysstat b,v$sysstat c

@!kCH(m%K.c%D2x9v051Testing软件测试网({Jl:]I6V#J4C9YT#d

 wherea.name='sorts (memory)'and

:@*fCF)R7~oF0

%KVV xn$|/|0        b.name='sorts (memory)'andc.name='sorts (disk)';

u0dh7zo\1R _B F ?0

l        Parse to execute ratio:在生产环境,最理想状态是一条sql语句一次解析多数运行。

0q.{tlPKS051Testing软件测试网fk g;P!D}e7S F

公式:1 - (parse count/execute count)

n{N)diq1O[(`5?-{051Testing软件测试网(T#SO |`[Y

执行:51Testing软件测试网"RAuUDq

0H ~n7f!s0@bHQ0select1-(a.value/b.value)

k(G1h ]KQf{0

I'c6j ~CAj1S2~.P0 fromv$sysstat a,v$sysstat b

B%P.P)MqJk.p0

[:V[.]_Y%h aa^0 wherea.name='parse count (total)'andb.name='execute count';51Testing软件测试网Qn1{&Li;O

l        Parse CPU to total CPU ratio:该项显示总的CPU花费在执行及解析上的比率。如果这项比率较低,说明系统执行了太多的解析。51Testing软件测试网%`#VESn%ss3g5\

51Testing软件测试网"d9riQ'ID _

公式:1 - (parse time cpu / CPU used by this session)

Y^1vE%_ []m} jy6Q051Testing软件测试网+u@,kiqX6C

执行:51Testing软件测试网+H d3L r"p`4Y

0_3?8ul5x5}c~Q7i9F0select1-(a.value/b.value)51Testing软件测试网/^b_1m*KoD

J4m]l*e%lC+vCyU9B0 fromv$sysstat a,v$sysstat b

OR:`)K;[!G}g^0

#E1QX K*D GA7a"C!|0 wherea.name='parse time cpu'and

r4F+o O%P0

p&I}3H]%wx#}V0        b.name='CPU used by this session';

5n:e SM[6NA0

l        Parse time CPU to parse time elapsed:通常,该项显示锁竞争比率。这项比率计算

\7S+YI{3Vr V0

VY,W?9Yr.Ec0是否时间花费在解析分配给CPU进行周期运算(即生产工作)。解析时间花费不在CPU周期运算通常表示由于锁竞争导致了时间花费

/\8_!y/h}biOHG E0

D#e_%l ` F-ML"j0公式:parse time cpu / parse time elapsed

+xE"JY6o0s.e?051Testing软件测试网$@8u6Zv1sso!k

执行:

!k/X])]_&^ c'G)_0

8_j W4^m0selecta.value/b.value

7c:a0J#D6nU9}6V0

$i{8X C7` o"B cnt0 fromv$sysstat a,v$sysstat b51Testing软件测试网8oSw9E8| ~qQ S e

u/YE'h3L7Ep:{c0 wherea.name='parse time cpu'andb.name='parse time elapsed';51Testing软件测试网J#KA!IbrnMluv+W

m}3Q,PVz5Q0V$SYSSTAT获取负载间档(Load Profile)数据

7IG2w;]?051Testing软件测试网9jY)E})nP

  负载间档是监控系统吞吐量和负载变化的重要部分,该部分提供如下每秒和每个事务的统计信息:logons cumulative, parse count (total), parse count (hard), executes, physical reads, physical writes, block changes, and redo size.

B/I7y^9L-m051Testing软件测试网|-D:U,c@#dy

  被格式化的数据可检查'rates'是否过高,或用于对比其它基线数据设置为识别system profile在期间如何变化。例如,计算每个事务中block changes可用如下公式:51Testing软件测试网W9ph.hWf`

$Ryf1Yo0db block changes / ( user commits + user rollbacks )51Testing软件测试网'M J*StjB0a

Bn4c7F&P m0执行:

~*w4sa7rlp0

'hB*`6L~rV[@N0selecta.value/(b.value+c.value)51Testing软件测试网+N!E4e"d"n`Af

2rs x;SV0 fromv$sysstat a,v$sysstat b,v$sysstat c51Testing软件测试网xu DQ X#k)MR?/z)T

kIDsD0 wherea.name='db block changes'and

+z6A2A!f;{w0

(X+d'R'owQ x0        b.name='user commits'andc.name='user rollbacks';51Testing软件测试网5QW,` @}9E

g].V+E%VR)UA^0其它计算统计以衡量负载方式,如下:51Testing软件测试网'a9dGL-K L)OI9Pa4O

l        Blocks changed for each read:这项显示出block changesblock reads中的比例。它将指出是否系统主要用于只读访问或是主要进行诸多数据操作(如:inserts/updates/deletes)51Testing软件测试网8_*VX&iwV

51Testing软件测试网9A*R#pJP$j

公式:db block changes / session logical reads

(C-g#H0A,J#i)O*R0

\S+U:Sh0执行:

2K+J9qE&Q4Y0

+E;~/u-B b"w0selecta.value/b.value

cf:hIO0

0v/^~$n1`:v @3m0 fromv$sysstat a,v$sysstat b51Testing软件测试网 \B(c@;|#_ d)WuPM$J

51Testing软件测试网TZQlv x"a1|

 wherea.name='db block changes'and51Testing软件测试网QGF7\zc

51Testing软件测试网]%c-u*vm*mpf)`,J6dF

        b.name='session logical reads';

a&x h,hm2Rw S0

l        Rows for each sort51Testing软件测试网RFw ntF9k5?{

Xt%T8g-A)u wk!]0公式:sorts (rows) / ( sorts (memory) + sorts (disk) )51Testing软件测试网?&\4{B n9i5\6G-e

/oB5~(m#~ KL:omf0执行:51Testing软件测试网x7sCI(QW

c5g'XKL0selecta.value/(b.value+c.value)51Testing软件测试网{ k$g RJ9@?K

51Testing软件测试网 kzD$gJfm B

 fromv$sysstat a,v$sysstat b,v$sysstat c51Testing软件测试网w#R5O h@,T"I

j1n?6E(b.awi0 wherea.name='sorts (rows)'and51Testing软件测试网${\${bTy$w]F'R

51Testing软件测试网C(K.@!~-O,`,^ a H s?

        b.name='sorts (memory)'andc.name='sorts (disk)';

I U*m o;z;|"Y0

TAG:

 

评分:0

我来说两句

vprince

vprince

6年软件测试经验,TIB自动化测试工作室核心成员,ATF框架核心设计和开发人员,熟悉软件自动化测试、性能测试,多年从事软件项目的自动化测试和性能测试,对自动化测试的框架设计开发、框架搭建以及实施有较为丰富的实战经验。 目前关注开源自动化测试领域、 基于Selenium构建Web自动化测试框架,为多家企业进行自动化测试培训、实施自动化测试项目。

日历

« 2024-05-12  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 67538
  • 日志数: 49
  • 建立时间: 2009-09-09
  • 更新时间: 2012-12-14

RSS订阅

Open Toolbar