【发布时间】:2012-03-05 13:28:40
【问题描述】:
我在 M-4000 机器上运行 Oracle 11G R2(据说是一台功能强大的机器)。最近,我注意到我的应用程序运行缓慢,并且在从数据库中查询时需要花费大量时间。令我震惊的是,当我看到数据库机器的统计数据时,我发现 CPU 使用率为 100%。
Here 是灰分报告。
现在有人可以告诉我我应该怎么做才能避免这种情况。
【问题讨论】:
我在 M-4000 机器上运行 Oracle 11G R2(据说是一台功能强大的机器)。最近,我注意到我的应用程序运行缓慢,并且在从数据库中查询时需要花费大量时间。令我震惊的是,当我看到数据库机器的统计数据时,我发现 CPU 使用率为 100%。
Here 是灰分报告。
现在有人可以告诉我我应该怎么做才能避免这种情况。
【问题讨论】:
那些执行“表访问完全”的查询可能是您的问题...任何全表扫描都会终止查询,通常可以通过添加简单索引来解决。您可以分析您的查询,工具会推荐要添加的索引,以改进某些查询的执行。我想我是在 Oracle 数据库上使用 Squirrel 完成的。
此外,您的 ID 似乎是字符串,并且您正在执行 'lower(id) like :3'。这应该改为使用整数,或者至少去掉较低的值并在 '3' 上进行匹配。
【讨论】: