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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle执行runstats,oracle runstats工具

發布時間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle执行runstats,oracle runstats工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

------

以sys登錄進行授權 grant select on sys.v_$timer to suk; grant select on v_$mystat to suk; grant select on sys.v_$statname to suk; grant select on sys.v_$latch to suk;

------

This is the test harness I use to try out different ideas. It shows two vital sets of statistics for me

The elapsed time difference between two approaches.?It very simply shows me which approach is faster by the wall clock

How many resources each approach takes.?This can be more meaningful then even the wall clock timings. For example, if one approach is faster then the other but it takes thousands of latches (locks), I might avoid it simply because it will not scale as well.

The way this test harness works is by saving the system statistics and latch information into a temporary table. We then run a test and take another snapshot. We run the second test and take yet another snapshot. Now we can show the amount of resources used by approach 1 and approach 2.

Requirements

In order to run this test harness you must at a minimum have:

Access to V$STATNAME, V$MYSTAT, v$TIMER and V$LATCH

You must be granted select DIRECTLY on SYS.V_$STATNAME, SYS.V_$MYSTAT, SYS.V_$TIMER and SYS.V_$LATCH. It will not work to have select on these via a ROLE.

The ability to create a table -- run_stats -- to hold the before, during and after information.

The ability to create a package -- rs_pkg -- the statistics collection/reporting piece

You should note also that the LATCH information is collected on a SYSTEM WIDE basis. If you run this on a multi-user system, the latch information may be technically "incorrect" as you will count the latching information for other sessions - not just your session. This test harness works best in a simple, controlled test environment.

The table we need is very simple:

create global temporary table run_stats

( runid varchar2(15),

name varchar2(80),

value int )

on commit preserve rows;

then you can create this view:

create or replace view stats

as select 'STAT...' || a.name name, b.value

from v$statname a, v$mystat b

where a.statistic# = b.statistic#

union all

select 'LATCH.' || name, gets

from v$latch

union all

select 'STAT...Elapsed Time', hsecs from v$timer;

Now the test harness package itself is very simple. Here it is:

create or replace package runstats_pkg

as

procedure rs_start;

procedure rs_middle;

procedure rs_stop( p_difference_threshold in number default 0 );

end;

/

create or replace package body runstats_pkg

as

g_start number;

g_run1 number;

g_run2 number;

procedure rs_start

is

begin

delete from run_stats;

insert into run_stats

select 'before', stats.* from stats;

g_start := dbms_utility.get_cpu_time;

end;

procedure rs_middle

is

begin

g_run1 := (dbms_utility.get_cpu_time-g_start);

insert into run_stats

select 'after 1', stats.* from stats;

g_start := dbms_utility.get_cpu_time;

end;

procedure rs_stop(p_difference_threshold in number default 0)

is

begin

g_run2 := (dbms_utility.get_cpu_time-g_start);

dbms_output.put_line

( 'Run1 ran in ' || g_run1 || ' cpu hsecs' );

dbms_output.put_line

( 'Run2 ran in ' || g_run2 || ' cpu hsecs' );

if ( g_run2 <> 0 )

then

dbms_output.put_line

( 'run 1 ran in ' || round(g_run1/g_run2*100,2) ||

'% of the time' );

end if;

dbms_output.put_line( chr(9) );

insert into run_stats

select 'after 2', stats.* from stats;

dbms_output.put_line

( rpad( 'Name', 30 ) || lpad( 'Run1', 12 ) ||

lpad( 'Run2', 12 ) || lpad( 'Diff', 12 ) );

for x in

( select rpad( a.name, 30 ) ||

to_char( b.value-a.value, '999,999,999' ) ||

to_char( c.value-b.value, '999,999,999' ) ||

to_char( ( (c.value-b.value)-(b.value-a.value)), '999,999,999' ) data

from run_stats a, run_stats b, run_stats c

where a.name = b.name

and b.name = c.name

and a.runid = 'before'

and b.runid = 'after 1'

and c.runid = 'after 2'

-- and (c.value-a.value) > 0

and abs( (c.value-b.value) - (b.value-a.value) )

> p_difference_threshold

order by abs( (c.value-b.value)-(b.value-a.value))

) loop

dbms_output.put_line( x.data );

end loop;

dbms_output.put_line( chr(9) );

dbms_output.put_line

( 'Run1 latches total versus runs -- difference and pct' );

dbms_output.put_line

( lpad( 'Run1', 12 ) || lpad( 'Run2', 12 ) ||

lpad( 'Diff', 12 ) || lpad( 'Pct', 10 ) );

for x in

( select to_char( run1, '999,999,999' ) ||

to_char( run2, '999,999,999' ) ||

to_char( diff, '999,999,999' ) ||

to_char( round( run1/decode( run2, 0, to_number(null), run2) *100,2 ), '99,999.99' ) || '%' data

from ( select sum(b.value-a.value) run1, sum(c.value-b.value) run2,

sum( (c.value-b.value)-(b.value-a.value)) diff

from run_stats a, run_stats b, run_stats c

where a.name = b.name

and b.name = c.name

and a.runid = 'before'

and b.runid = 'after 1'

and c.runid = 'after 2'

and a.name like 'LATCH%'

)

) loop

dbms_output.put_line( x.data );

end loop;

end;

end;

/

/*

exec runStats_pkg.rs_start;

exec runStats_pkg.rs_middle;

exec runStats_pkg.rs_stop;

*/

總結

以上是生活随笔為你收集整理的oracle执行runstats,oracle runstats工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: a级黄色片 | 九九热视频精品在线观看 | 99精品久久久久久久 | 无码人妻精品一区二区三区99v | 图书馆的女友动漫在线观看 | 国产精品久久9 | 免费观看国产视频 | 亚洲国产成人在线 | 亚洲欧美久久 | 成人av影视在线观看 | 夜夜撸av| 日韩色 | 一区二区中文在线 | 国产爽视频 | 国产91免费 | 国产精品久久一区二区三区动 | 超碰97国产在线 | 亚洲女同女同女同女同女同69 | 欧洲午夜精品 | 久99精品| 日批免费观看 | 学生调教贱奴丨vk | 日韩熟妇一区二区三区 | 三级男人添奶爽爽爽视频 | 欧美三级精品 | 性色av网 | 久久免费小视频 | 四虎成人精品在永久免费 | 操人视频免费看 | 我要色综合天天 | 久久er99热精品一区二区 | 色噜噜网站| 成年人理论片 | 国产综合视频在线 | 91调教打屁股xxxx网站 | 一二区视频 | 国产精品1234区 | 狼人精品一区二区三区在线 | 免费黄色短片 | 久久综合色婷婷 | 久久久久成人精品免费播放动漫 | 亚洲乱视频 | 亚洲区欧美区 | 韩国伦理电影免费在线 | 天天操天天看 | 亚洲天堂免费在线观看视频 | 久久欲 | 不卡的毛片 | 午夜影院日本 | 精品视频91 | 在线观看免费黄色小视频 | 国产天天操 | 性猛交富婆╳xxx乱大交麻豆 | 综合网伊人 | 久久久久婷婷 | 久久美利坚 | 91午夜影院 | av 日韩 人妻 黑人 综合 无码 | 毛片久久久久 | 天天操天 | av网页在线观看 | 性欧美ⅴideo另类hd | 一区二区三区日韩在线 | 狠狠撸在线观看 | 亚洲精品视频在线免费 | 欧美日韩一区二区三区不卡视频 | 国产成人在线观看免费网站 | 欧美日韩国产图片 | 亚洲爱爱爱 | 人人爽久久涩噜噜噜网站 | 中文字幕日本在线观看 | 免费性片 | wwwxxx国产| 久草福利视频 | 深夜福利91 | 欧美激情综合色综合啪啪五月 | 精品欧美色视频网站在线观看 | 大尺度舌吻呻吟声 | av无码一区二区三区 | 香蕉国产精品视频 | 精品人妻视频在线 | 亚洲狠狠丁香婷婷综合久久久 | 欧美黑丝少妇 | 在线精品视频免费观看 | 欧美日韩国产一区二区三区在线观看 | 韩国美女一区 | 91喷水| 一个色综合久久 | 午夜天堂在线观看 | 麻豆国产尤物av尤物在线观看 | 四虎影视在线播放 | 色欲久久久天天天精品综合网 | 黄p在线播放 | 久久66热这里只有精品 | 亚洲av电影一区 | 欧美日韩1区 | 午夜色播 | 毛片大全免费看 | 欧美成人黄 |