Oracle数据库非常慢 – 从哪里开始以及如何find原因?

我们的Oracle数据库(11g)突然很慢。 我不知道在哪里开始debugging过程,以find实际的问题?

我试图生成表格统计信息,并寻找锁…但我找不到任何信息,直接指向我的原因,或者我看着错误的地方..

请指导我从哪里开始..

那么,我会定义什么是慢的:)

插入地狱很多时间..甚至100,000个logging插入需要一个小时

我首先看看数据库服务器,看看是否有瓶颈 – 例如磁盘,networking,CPU,内存。 如果有底层的硬件问题,这可能会导致你。 但是,如果有应用程序问题,这可能会显示效果,但不是原因。

处理Oracle性能问题最彻底的方法是对一个或多个慢速会话执行扩展SQL跟踪,对其进行configuration,并查看实际花费的时间。 一个很好的信息来源是Cary Millsap的书,你可以看到这里的第一章。

但是,查看相同信息的不太完整的方法是简单地查询数据字典,以查看慢速会话等待的事件。 在出现严重错误的情况下,这通常与完整的跟踪一样有效。 我会开始多次运行这个查询,看看你的位置:

select seq#, event, wait_time, seconds_in_wait, state from v$session where type='USER' ; 

收集类似信息的另一种方法是Tanel Poder的Snapper脚本

一般而言,从顶层开始,先后分解在哪里花费时间。 在某个时候,你应该达到一个水平,你会看到太多的时间花在不应该的地方。

有关更多详细信息,我强烈build议Cary Millsap的论文“ 清楚地思考性能” 。

如果事情一直很好,没有什么大的改变(即增加使用量,修改索引,大量报告,分析处理等)

首先检查硬件/物理磁盘的运行状况和性能。

坦率地说,这是一个相当广泛的问题,还有很多未知的…但是因为你的具体问题是我从哪里开始。 那就是我要开始的地方。

您是否许可Oracle诊断包? 如果是的话,你可以访问几个有用的工具:ADDM(自动诊断监视器)和AWR(自动工作量库)。 AWR的报告起初可能很难理解,但他们可以提供关于数据库中真正发生的事情的宝贵信息。

如果您没有诊断包,您仍然可以访问“活动会话历史logging”视图。

您在11g上,这意味着您可以启动“数据库控制”,它是企业pipe理器的有限版本(或者您可能拥有完全许可的企业pipe理器)。 数据库控制提供了Web界面,它可以让你看到性能相关的信息等等,它收集了很多有用的信息。 再次,有很多要学习,但如果有性能问题,快速查看“性能”选项卡可以提供大量的信息。

问候

看看这个链接: http : //www.dba-oracle.com/t_top_reasons_poor_performance.htm