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

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

生活随笔

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

编程问答

[20171109]缓存命中率神话.txt

發(fā)布時(shí)間:2025/6/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [20171109]缓存命中率神话.txt 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

[20171109]緩存命中率神話.txt

--//在oracle版本的早期,緩存命中率是一個(gè)很重要的優(yōu)化指標(biāo),實(shí)際上這個(gè)根本不重要.
--//一般OLTP系統(tǒng)即使出現(xiàn)嚴(yán)重的性能問(wèn)題,這個(gè)數(shù)值也很高,實(shí)際上一個(gè)簡(jiǎn)單的情況就能說(shuō)明問(wèn)題,
--//比如走h(yuǎn)ash join的計(jì)劃,不小心走了nested loop,可能導(dǎo)致邏輯讀上升.緩存命令率很高,但是數(shù)據(jù)庫(kù)
--//未必運(yùn)行在最佳性能.

--//這個(gè)也是我學(xué)習(xí)oracle早期一個(gè)不好理解的問(wèn)題,^_^.

--//https://connor-mcdonald.com/2017/11/07/buffer-cache-hit-ratio-blast-from-the-past/給出一個(gè)例子,能很好的說(shuō)明問(wèn)題.

SYS@book> @ &r/ver1
PORT_STRING??????????????????? VERSION??????? BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx??????????? 11.2.0.4.0???? Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SYS@book> grant select on v_$sysstat to scott ;
Grant succeeded.

--//注:我修改源代碼,加入AUTHID CURRENT_USER .不然報(bào)如下錯(cuò)誤:
SCOTT@book> exec choose_a_hit_ratio(92);
Current ratio is: 90.72333
Another 18142 consistent gets needed...
BEGIN choose_a_hit_ratio(92); END;

*
ERROR at line 1:
ORA-01031: insufficient privileges
ORA-06512: at "SCOTT.CHOOSE_A_HIT_RATIO", line 72
ORA-06512: at line 1

--//代碼如下:
create or replace
procedure choose_a_hit_ratio(p_ratio number default 99,p_show_only boolean default false) AUTHID CURRENT_USER
? v_phy??????????????? number;
? v_db???????????????? number;
? v_con??????????????? number;
? v_count????????????? number;
? v_additional_congets number;
? v_hit number;
?
? procedure show_hit is
? begin
??? select p.value, d.value, c.value
??? into v_phy, v_db, v_con
??? from
????? ( select value from v$sysstat where name = 'physical reads' ) p,
????? ( select value from v$sysstat where name = 'db block gets' ) d,
????? ( select value from v$sysstat where name = 'consistent gets' ) c;
??? v_hit := 1-(v_phy/(v_db+v_con));
??? dbms_output.put_line('Current ratio is: '||round(v_hit*100,5));
? end;
begin
--
-- First we work out the ratio in the normal fashion
--
? show_hit;

? if p_ratio/100 < v_hit or p_ratio > 99.9999999 then
??? dbms_output.put_line('Sorry - I cannot help you');
??? return;
? end if;
--
-- Flipping the formula we can work out how many more consistent gets
-- we need to increase the hit ratio
--
? v_additional_congets := trunc(v_phy/(1-p_ratio/100)-v_db - v_con);

? dbms_output.put_line('Another '||v_additional_congets||' consistent gets needed...');

? if p_show_only then return; end if;
--
-- Create a simple table to hold 200 rows in a single block
--
? begin
??? execute immediate 'drop table dummy';
? exception
??? when others then null;
? end;

? execute immediate 'create table dummy (n primary key) organization index as '||
??????????????????? 'select rownum n from all_objects where rownum <= 200';
--
-- Turn off any new 9i connect-by features to ensure we still do lots of
-- logical IO
--
? begin
??? execute immediate 'alter session set "_old_connect_by_enabled" = true';
? exception
??? when others then null;
? end;
--
-- Grind away until we do all those additional gets
--
? execute immediate '
??? select count(*)
??? from (
????? select n
????? from dummy
????? connect by n > prior n
????? start with n = 1 )
??? where rownum < :v_additional_congets' into v_count using v_additional_congets;

? show_hit;
end;
/

--//執(zhí)行如下:

SCOTT@book> set serveroutput on
SCOTT@book> exec choose_a_hit_ratio(85,true);
Current ratio is: 90.71867
Sorry - I cannot help you
PL/SQL procedure successfully completed.

SCOTT@book> exec choose_a_hit_ratio(92,true);
Current ratio is: 90.72316
Another 18144 consistent gets needed...
PL/SQL procedure successfully completed.

SCOTT@book> exec choose_a_hit_ratio(92);
Current ratio is: 90.86547
Another 16374 consistent gets needed...
Current ratio is: 92.06869
PL/SQL procedure successfully completed.

SCOTT@book> exec choose_a_hit_ratio(98);
Current ratio is: 92.33213
Another 443318 consistent gets needed...
Current ratio is: 98.01083
PL/SQL procedure successfully completed.

SCOTT@book> exec choose_a_hit_ratio(99,true);
Current ratio is: 98.0109
Another 598700 consistent gets needed...
PL/SQL procedure successfully completed.

SCOTT@book> exec choose_a_hit_ratio(99);
Current ratio is: 98.01091
Another 598698 consistent gets needed...
Current ratio is: 99.00114
PL/SQL procedure successfully completed.

總結(jié)

以上是生活随笔為你收集整理的[20171109]缓存命中率神话.txt的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 欧美激情四区 | 日韩精品福利视频 | 艳妇臀荡乳欲伦交换在线播放 | www.成人国产| 777片理伦片在线观看 | 国产ts在线| 狠狠干在线视频 | 国产极品尤物 | a天堂在线资源 | 99av视频 | 免费观看视频一区二区 | 精品人妻人伦一区二区有限公司 | 伊人免费在线观看高清版 | 不卡的日韩av| 少妇太爽了太深了太硬了 | 欧美va在线观看 | 美女视频在线观看免费 | 猫咪av网| 成人网导航 | 国产一二三精品 | 亚洲国产第一区 | 中日精品一色哟哟 | 欧美成人一级片 | 在线不卡av电影 | 肥婆大荫蒂欧美另类 | 日本久久久网站 | 日韩欧美中文在线 | 久久久免费 | 啪啪天堂| 888奇米影视 | 中国无码人妻丰满熟妇啪啪软件 | 亚洲码无人客一区二区三区 | 国产尤物网站 | 欧美四级在线观看 | 日日操夜夜爱 | av作品在线 | 能免费看黄色的网站 | 波多野结衣啪啪 | 人妖ts福利视频一二三区 | 国产精品麻豆一区二区 | 国产特级aaaaaa大片 | 不卡av中文字幕 | 美腿丝袜一区二区三区 | 国产精品果冻传媒 | 中文字幕3区| 三级在线免费 | 精品中文字幕一区二区三区 | 午夜国产精品视频 | 国产精品久久久久影院 | 免费观看黄色网 | 国产美女91 | 30一40一50老女人毛片 | 日韩av电影中文字幕 | 亚洲中文字幕视频一区 | 久久精品视频一区二区 | 免费a级黄色片 | 日韩在线一区二区三区四区 | 久久天堂av综合合色蜜桃网 | 精品夜夜澡人妻无码av | 男生和女生差差视频 | 国产看黄网站 | 久久久资源网 | 亚洲综合久久av | 韩国女主播av | 欧美精品少妇 | 亚洲一卡二卡在线观看 | 日本美女高潮 | 51ⅴ精品国产91久久久久久 | 亚洲色婷婷久久精品av蜜桃 | 国产玖玖在线 | 91视频爱爱 | 操操操爽爽爽 | 日韩黄色av网站 | 国产97色在线 | 日韩 | av在线网页 | 国产又粗又猛又黄又爽无遮挡 | 四虎久久久 | 国产无遮挡又黄又爽在线观看 | 岛国精品一区二区三区 | 久久久黄色网 | 国产一区视频在线播放 | 欧日韩精品 | 亚洲成人资源 | 亚洲a∨无码无在线观看 | 禁断介护av一区二区 | 国产精品视频播放 | 中文字幕免费高清在线 | 欧美日韩一区二区电影 | 成人久久久久久久 | 久久久久久久久精 | 女十八毛片 | 日韩a在线 | 老外一级片 | 日韩淫 | 视频毛片 | 五月婷婷六月合 | 五月天精品| 国产性猛交普通话对白 | 亚洲天堂婷婷 |