几种常用的SQL优化工具及方法
转自:http://blog.itpub.net/35489/viewspace-764856/
1. sql 详细执行计划,主要检查驱动路径,索引是否合适;同一个pl/sql窗口连续执行即可;
explain plan for (select * from HW_PC_SIGNED_COMPANY_V sc) ;
select * from table(dbms_xplan.display(null,null,'all'));
2. sql monitor,查看sql主要花在哪些时间,真实的行数和IO;三个sql依次执行;
SELECT /*+monitor*/ * from HW_PC_SIGNED_COMPANY_V sc ;
select * from v$sql s where s.SQL_TEXT like 'SELECT /*+monitor*/ * from HW_PC_SIGNED%' ;
select dbms_sqltune.report_sql_monitor('ftswqgup6hzxx') from dual ;
3. SQLT
http://space.itpub.net/35489/viewspace-764348
查看TXT文件。
4. SQL Profile 及使用SQL Tuning Advisor来尝试SQL调优
http://space.itpub.net/35489/viewspace-747164
5. 10046 EVENT
trace 文件的格式都是 sid_ora_pid.trc , 其中sid 表示数据库的instance name, pid 表示 process id .
A. 可以在PL/SQL中加入如下的语句来进行trace .
EXECUTE IMMEDIATE 'ALTER SESSION SET timed_statistics=true' ;
EXECUTE IMMEDIATE 'ALTER SESSION SET max_dump_file_size=“unlimited”';
EXECUTE IMMEDIATE 'ALTER SESSION SET TRACEFILE_IDENTIFIER=''TEST_TRACEFILE''';
EXECUTE IMMEDIATE 'ALTER SESSION SET EVENTS ''10046 trace name context forever,level 8''';
在最后加入如下语句执行
EXECUTE IMMEDIATE 'ALTER SESSION SET EVENTS ''10046 trace name context off'';
B. 使用10046 event 跟踪其他用户session :
对其他用户session设置 dbms_system.set_ev
说明:5个参数 sid/serial#/ev/level/username
Select sid,serial# from v$session where username is not null ;
SID SERIAL#
---------- ---------- -----
113 227
或者通过spid查询sid, serial# :
SQL> select b.*, a.* from v$process a, v$session b
where a.addr = b.paddr and a.spid in (1914, 19140) ;
执行跟踪:
exec dbms_system.set_ev(113,227,10046,8,'');
结束跟踪:
exec dbms_system.set_ev(113,227,10046,0,'');
最后的trace文件都需要使用 tkprof 进行格式转化
tkprof xxx.trc xxx.txt explain=apps/passwd sort='(prsela,exeela,fchela)'
6. SQL Trace
SQL> set autotrace traceonly
显示: expain+statistics(不显示数据)
几种常用的SQL优化工具及方法的更多相关文章
- 美团SQL优化工具SQLAdvisor
介绍 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务.例行 SQL 优化,不仅可以提升程序性能,还能够降低线上故障的概率. 目前常用的 SQL 优化方式包括但不限于:业务层优化.SQL逻 ...
- sql优化工具--美团SQLAdvisor
美团点评SQL优化工具SQLAdvisor开源 介绍 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务.例行 SQL 优化,不仅可以提升程序性能,还能够降低线上故障的概率. 目前常用的 S ...
- SQL优化工具SQLAdvisor使用
一.简介在数据库运维过程中,优化SQL是业务团队与DBA团队的日常任务.例行SQL优化,不仅可以提升程序性能,还能够降低线上故障的概率. 目前常用的SQL优化方式包括但不限于:业务层优化.SQL逻辑优 ...
- 美团开源 SQL 优化工具 SQLAdvisor
https://www.oschina.net/news/82725/sqladvisor-opensource https://github.com/Meituan-Dianping/SQLAdvi ...
- SQL优化工具SQLAdvisor使用(转)
一.简介 在数据库运维过程中,优化SQL是业务团队与DBA团队的日常任务.例行SQL优化,不仅可以提升程序性能,还能够降低线上故障的概率. 目前常用的SQL优化方式包括但不限于:业务层优化.SQL逻辑 ...
- Oracle 10G强大的SQL优化工具:SQL Tuning Advisor
p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; orphans: 2; widow ...
- SQL优化工具
SQL优化工具 什么是索引? 打个比方,我们在使用MySQL用作查询的时候就好比查字典,索引就好比字典的偏旁部首页.如果没有索引我们查询一个文字就需要一页页的翻,显然这种方式效率很低.如果我们对某一字 ...
- 【SQL优化】SQL优化工具
SQLAdvisor 是由美团点评公司北京DBA团队开发维护的 SQL 优化工具:输入SQL,输出索引优化建议. 它基于 MySQL 原生词法解析,再结合 SQL 中的 where 条件以及字段选择度 ...
- 美团点评SQL优化工具SQLAdvisor开源快捷部署
美团点评SQL优化工具SQLAdvisor开源快捷部署 git clone https://github.com/Meituan-Dianping/SQLAdvisor.gityum install ...
随机推荐
- 又一个错误" Fatal error: Call to undefined function myabp_print_screenshot_all() "
xxx ( ! ) Fatal error: Call to undefined function myabp_print_screenshot_all() in D:\wamp\www\wp-con ...
- JSDoc 3 生成javascript API文档
一.javascript注释规范 我们在编写javascript文件的时候,一般会添加一些注释.例如一些文件.类.方法和属性都应该用合适的标记和类型进行注释.这里不但方便我们的阅读,也能养成一个好的习 ...
- Jquery判断某字符串中是否包含某个字符
if(!(to_city_value.indexOf("(")>0){ //code..... }
- Error -27740: WSA_IO_pending
Error -27740: WSA_IO_pendingAction.c(198): Error -27791: Server **** has shut down the connection pr ...
- openfire安装配置完全教程
Java领域的IM解决方案 Java领域的即时通信的解决方案可以考虑openfire+spark+smack. Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端,最新版本是3. ...
- Spring 依赖注入(DI)的注解
Spring中想要使用注解进行依赖注入,需要进行如下配置: <beans xmlns="http://www.springframework.org/schema/beans" ...
- linux -- chown修改文件拥有者和所在组
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷贝 ...
- samtools flags 的含义
对于双端比对的数据,生成的BAM文件中,R1端序列和R2端序列的标识符是一样的,之前一直不知道如何根据bam文件区分哪条序列是R1端,哪条序列是R2端,昨天仔细研究了一下,原来代表R1端和R2端的信息 ...
- bootstrap大图轮播手机端不能手指滑动解决办法
网上看了很多解决办法,几乎本质都是一样的,都是引入一个滑动的js插件,加入一段js代码,即可生效,但是我试了hammer.js 和 touchSwipe.js 都不生效,也找不到原因是什么,目前在网上 ...
- Unity利用UI的Mask实现对精灵Sprite的遮挡
例如剔除掉船超出河流的一部分,实现让船只在河流之上显示. 其实是利用UI层的Mask实现遮罩,有些不同的是Mask的图片是用Camera渲染到RenderTexture动态产生的纹理实现的.大概步骤如 ...