oracle调优 各位大侠: 最近我的oracle特别慢,有时候编译一个存储过程需要几分钟,甚至编译就卡死在那里了.而有时候速度还可以请各位大侠指点数据库为何慢?请指点跟踪和检查方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 编译一个存储过程需要几分钟是SQL 写的不好,可以把你的SQL 贴出来看一下。 还有可以做个AWR 报告,分析下数据库.Oracle AWR 介绍http://blog.csdn.net/tianlesoftware/archive/2009/10/17/4682300.aspx 看看session,是不是有死锁出现了。 是不是你的sql太长了,我的一条sql有2126行,在编译的时候要编译20分钟。 在test窗口中跟踪存储过程,定位存储过程的瓶颈后,优化sql语句 重启数据库——————哈哈,这个是绝招——就算是生产库也该停机维护一下了,看来你的数据库服务器是在WIN下的非LINUX的 如果是时快时慢,估计不是存储的问题,慢的时候有可能是你的数据正在执行某些任务导致,建议你主要从执行任务的sql语句里来找,在10g的管理界面可以看到哪条语句占用cpu比较多,还有部分辅助优化! 编译一个存储过程慢 是因为你编译的存储过程出现了等待(可能是你存储过程依赖的对象正在被锁着)而与你存储过程内的sql写的好坏没关系。编译存储过程最好不要在系统繁忙的时候编译,很容易造成系统的HANG住。 我的系统在aix下(linux);我觉得是索表的原因,为什么经常会索表呢,这个事情很怪啊.大家爱接着讨论, 查查V$lock(锁掉的表,通常TX,TM锁)查查V$latch(是不是latch用光了,排队着呢) 不要在生产库上业务繁忙的时候编译存储过程,会产生ddl锁。获得Library Cache Pin 等待的对象,即查谁在等待library lockselect addr,kglhdadr,kglhdpar,kglnaown,kglnaobj,kglnahsh,kglhdobjfrom x$kglobwhere kglhdadr in (select p1raw from v$session_wait where event like 'library%') SQL太长也会溢出的·小心点~问题不一定在数据库上面,先查查主机,再看看数据库吧! 今天应用系统直接垮掉,说是进程太多,后来自己好了,我估计是应用程序的问题;系统的cup和内存占用率都是很高的 有这么大的SQL?倒是见过 3万行的存储过程 关于db-link的讨论 dblink跨域连接问题 用排序哈希簇来提升Oracle查询速度 oracle8i 一启动就一直占用50%的cpu,一天了都没闲下来,请指点! 读取数据排序的问题 如何指定特定表空间中的表!(一旦好使,立刻给分) 讨论关于Oracle Workflow 简单问题:取第20到40条记录,这样的SQL语句如何写。kkkkkkkk快速给分 十万火急!!!! 程序包问题 oracle 出现12516 异常 监听程序找不到符合协议堆栈要求的可用处理程序 求一SQL语句,横表转纵表!
编译一个存储过程需要几分钟
是SQL 写的不好,可以把你的SQL 贴出来看一下。 还有可以做个AWR 报告,分析下数据库.Oracle AWR 介绍
http://blog.csdn.net/tianlesoftware/archive/2009/10/17/4682300.aspx
而与你存储过程内的sql写的好坏没关系。编译存储过程最好不要在系统繁忙的时候编译,很容易造成系统的HANG住。
查查V$latch(是不是latch用光了,排队着呢)
获得Library Cache Pin 等待的对象,即查谁在等待library lock
select addr,kglhdadr,kglhdpar,kglnaown,kglnaobj,kglnahsh,kglhdobj
from x$kglob
where kglhdadr in (select p1raw
from v$session_wait
where event like 'library%')
问题不一定在数据库上面,先查查主机,再看看数据库吧!
系统的cup和内存占用率都是很高的
倒是见过 3万行的存储过程