gpt4 book ai didi

database - 如何提高Oracle数据库中的缓存命中率?

转载 作者:搜寻专家 更新时间:2023-10-30 22:10:04 26 4
gpt4 key购买 nike

我运行 Oracle 11g 第 2 版。如何手动提高缓存命中率?有没有我可以运行的命令来增加它?

最佳答案

Source

许多 DBA 尽最大努力获得 99% 或更好的缓冲区缓存命中率,但很快发现他们的数据库性能并没有随着命中率的提高而提高。

这是获取数据库当前命中率的查询:

SQL> -- Get initial Buffer Hit Ratio reading...
SQL> SELECT ROUND((1-(phy.value / (cur.value + con.value)))*100,2) "Cache Hit Ratio"
2 FROM v$sysstat cur, v$sysstat con, v$sysstat phy
3 WHERE cur.name = 'db block gets'
4 AND con.name = 'consistent gets'
5 AND phy.name = 'physical reads'
6 /

Cache Hit Ratio
---------------
90.75

但是,为了显示这个数字有多么无意义,让我们人为地增加它:

SQL> -- Let's artificially increase the buffer hit ratio...
SQL> DECLARE
2 v_dummy dual.dummy%TYPE;
3 BEGIN
4 FOR I IN 1..10000000 LOOP
5 SELECT dummy INTO v_dummy FROM dual;
6 END LOOP;
7 END;
8 /

PL/SQL procedure successfully completed.

让我们看看发生了什么:

SQL> -- Let's measure it again...
SQL> SELECT ROUND((1-(phy.value / (cur.value + con.value)))*100,2) "Cache Hit Ratio"
2 FROM v$sysstat cur, v$sysstat con, v$sysstat phy
3 WHERE cur.name = 'db block gets'
4 AND con.name = 'consistent gets'
5 AND phy.name = 'physical reads'
6 /

Cache Hit Ratio
---------------
99.94

结论:甚至不必费心尝试调整缓冲区命中率!

现在有更好的调整方法。 Oracle Wait Interface (OWI) 提供了确切的详细信息。不再需要依赖模糊无意义的计数器了。

关于database - 如何提高Oracle数据库中的缓存命中率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32985768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com