我们数据库主机
安腾主机 HP-UX 版本 B11.23
ORACLE版本9205,无其他小patch疑难问题是:
应用平常用的好好的,没任何问题。偶尔,会突然应用反应很慢,看数据库等待事件里
有很多全表扫描的SESSION存在,然后看这些session都在执行某条SQL语句,应用中用到的包或存储过程里的这条SQL语句,这个语句不定会是那句,会出现此问题,但平常应用都是好好的。系统日志里又没有报错。抓出正在做全表扫描的这条SQL语句,看执行计划,执行计划也是好的,索引等都能用上。手工DEBUG调目前堵的这过程或包,就会挂死在这条SQL处,不能继续下去。
我们怀疑是shared pool里的sql执行计划出了问题,然后FLUSH SHARED_POOL。
还是没用,就执行看着数据库慢。其他,症状和数据库操作当时感觉没有。
但当时数据库的压力是比较大的,我们数据库还偶尔会报ORA-7445错误。不知道和上述问题有没有关系。不知道各位高手有没有遇到过此问题?急等!
谢谢!

解决方案 »

  1.   

    你定期做analyze table 了吗?
    例子:
    analyze table tab_name estimate statistics
      

  2.   

    分析了!
    我用dbms_stats.gather_table_stats隔一天分析一次的!
      

  3.   

    ORA-07445 exception encountered: core dump [string] [string] [string] [string] [string] [string]Cause: An operating system exception occurred which should result in the creation of a core file. This is an internal error.Action: Contact Oracle Customer Support.------------------------------------------------------------------------------------
    是不是操作系统有问题?检查一下或者重装一次。
      

  4.   

    我们机器的IO是很繁忙总是100%
    但是就是IO繁忙,也不可能出现那个‘全表扫描’的问题,是那个全表扫描影响了IO!
      

  5.   

    是否并发查询并发度设的太高?
    如果dbms_stats.gather_table_stats没有问题,查询本身有没有问题?
    查询返回记录超过表记录总数的7%(未排序)或者40%(已排序)时全表扫描更高效
    对于给定的查询,可以通过outline稳定查询计划
      

  6.   

    运行statspack,查看CPU、DISK IO、wait event、TopSQL等,查找最占资源的部分。