抓取oracle数据库耗费资源的sql语句

抓取oracle数据库耗费资源的sql语句

ID:9037345

大小:410.50 KB

页数:3页

时间:2018-04-15

抓取oracle数据库耗费资源的sql语句_第1页
抓取oracle数据库耗费资源的sql语句_第2页
抓取oracle数据库耗费资源的sql语句_第3页
资源描述:

《抓取oracle数据库耗费资源的sql语句》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、抓取oracle数据库耗费资源的sql语句oracle数据库连接业务系统,而有些sql语句的执行严重影响了oracle的性能,就如同mysql的慢查询一样,mysql可以开启慢查询日志定位这些造成数据库性能下降的语句,而oracle同样可以做到,而且有过之而无不及。  下面举例说明  首先用root用户登陆核心应用系统,su-oracle  执行命令topas  可以查看到如下信息:解释三个地方1.Idle%:是cpu的空闲率2.PID:进程唯一标示符3.CPU%:该进程所占用的cpu的百分比  从上述信息可以定位进程为1454604的进程占用资源比较高,查询该进程

2、的sql语句情况。  登陆核心系统oracle数据库,执行以下语句1.selectc.spid,a.p1,a.p1raw,a.p2,a.event,b.sql_text,b.SQL_FULLTEXT,b.SQL_ID 2.from v$session a,v$sql b,v$process c 3.where a.wait_class<>'Idle' and a.sql_id=b.sql_id and a.PADDR=c.addr 1.order by event;情况如下图所示:   找到对应的SPID,点击SQL_FULLTEXT列下的CLOB后面的按钮,可以查

3、看耗费系统资源的具体sql语句。1.select 'X'  2.from lctcont  3.where '1344926626000'='1344926626000'  4.and  certifycode like 'TTS%'  5.and grpcontno  6. in ( select c.grpcontno from ljaget a ,ljagetendorse b ,lcgrpcont c 7.           where a.EnterAccDate is null  8.and a.actugetno = b.actugetno  9.a

4、nd b.grpcontno = c.grpcontno 10.and a.otherno='8053000000139568' 11.)   找到了根源,接着就是如何解决,可见由于字段grpcontno上没有索引,导致表lctcont的全表扫描,最终造成整个执行计划的错乱(其中有笛卡尔积)。因此,正确的再字段grpcontno上创建索引,即可解决此问题。由于这是开发人员写的sql语句,所以对于sql语句的优化,要由他们来配合操作,作为dba不但要懂得如何在内存体系结构上优化数据库,更要懂得协同开发人员一起进行oracle数据库的优化。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。