在Oracle中,数据库运行很慢,如何解决?
导致数据库运行很慢的原因非常多,例如可能是开发人员SQL语句写的不好导致执行性能比较差。所以,碰到这类问题,不能给出一个非常精确的答案,但是可以按照如下的步骤去检测:
① top或topas查看系统的CPU利用率是否正常,找到最耗费资源的Oracle进程,然后进入数据库查询相关的会话,找到SQL语句再进行具体分析。如果CPU正常,那么就很可能是由于开发人员写的SQL语句不好,导致SQL执行时间过长,因此,开发人员误认为是数据库运行缓慢。
② 进入数据库查看等待事件是否正常,SQL语句如下所示:
例如,结果如下所示:
1SELECT A.INST_ID, A.EVENT, COUNT(1)
2 FROM GV$SESSION A
3 WHERE A.USERNAME IS NOT NULL
4 AND A.STATUS = 'ACTIVE'
5 AND A.WAIT_CLASS<>'Idle'
6GROUP BY A.INST_ID,A.EVENT
7ORDER BY A.INST_ID,COUNT(1) DESC;复制
那么,在这里就应该着重解决log file sync这个等待事件。
1 INST_ID EVENT COUNT(1)
2---------- ---------------------------------- ----------
3 1 latch: ges resource hash list 58
4 1 gc buffer busy acquire 2
5 2 log file sync 10788
6 2 gc buffer busy release 12
7 2 gc current request 6
8 2 latch free 1复制
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

---------------优质麦课------------
详细内容可以添加麦老师微信或QQ私聊。
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。

最后修改时间:2020-01-10 17:38:10
文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。