1

在具有大量读/写的 Oracle 10g 表上,我们偶尔会在使用所有 CPU 的并发引用“锁存库缓存”时出现巨大的峰值。

我们可以采取什么方法来减轻数据库中的负载。我们已经看到了关于免费列表和增加这些的东西。任何其他意见。

4

1 回答 1

4

“锁存库缓存”与给定表上的 I/O 是否高无关。这意味着您正在等待已解析 SQL 语句缓存的锁存器;因此,当您看到这些尖峰时,很可能会发生异常数量的硬解析。

最常见的原因是您没有使用绑定变量,因此您正在硬解析许多具有不同值的类似语句。EG 您正在执行如下语句:

SELECT name FROM emp WHERE empid = 3;

并在每次执行查询时更改文字 ID 值,从而导致解析新语句。最好用绑定变量替换文字并为每次执行绑定一个新值。究竟如何实现这一点取决于您用来对数据库执行语句的语言/库/环境。

于 2009-05-06T12:28:42.360 回答