使用showplan.sql分析sql Performance

在HelloDBA网站找到一个分析sql性能的工具—showplan,记录一下

showplan.sql下载路径:http://www.HelloDBA.com/Download/showplan.zip

使用方式就是调用该工具,传入SQL_ID作为参数。

SQL> @/dmp/showplan.sql 26xj87b2f8g6u
Usage: @showplan <SQL_ID> [Plan Hash Value] [Details: [+](B)inds|SQL (T)ext|(Pee(K)ed Binds|(P)lan|(O)utlines|Pre(D)icate|Plan (L)oading|(W)ait events|(S)tatistics]
Description: Show SQL Plan

SQL ID: 26xj87b2f8g6u

------------- SQL Text --------------

SELECT TRIM("A1"."WORK_ORDER"),COUNT(*) FROM  (SELECT DISTINCT "A5"."WORDER_ID" "WORDER_ID" FROM "WIP_WORK_ORDER" "A5","WIP_CODE" "A4" WHERE "A5"."NEXT_PFCD"="A4"."CODE_EXT"(+) AND "A4"."CODE_CATE"(+)=‘ERPP‘ AND "A5"."PLAN_ST_DT">= (SELECT TO_CHAR([email protected]!-31,‘yyyy-mm-dd‘) FROM "SYS"."DUAL" "A6") AND "A5"."STATUS"<>‘3‘) "A2","HLBRHIS_SHIP" "A1" WHERE "A1"."CLM_MFDT">= (SELECT TO_CHAR([email protected]!-31,‘yyyy-mm-dd‘) FROM "SYS"."DUAL" "A3") AND "A2"."WORDER_ID"=TRIM("A1"."WORK_ORDER") GROUP BY "A1"."WORK_ORDER"

------------- SQL Plan (Plan Hash Value:564968535; Parsed by schema:) --------------

0     ( )SELECT STATEMENT
     1     (0) HASH (GROUP BY) (Cost=4256 Card=65 rows Bytes=0/82)
     2     (1)  NESTED LOOPS (Cost=4255 Card=133150 rows Bytes=0/82)
     3     (2)   NESTED LOOPS (Cost=4255 Card=153566712 rows Bytes=0/82)
     4     (3)    VIEW (Cost=178 Card=102 rows Bytes=0/13)
     5     (4)     HASH (UNIQUE) (Cost=178 Card=102 rows Bytes=0/60)
     6     (5)      HASH JOIN (OUTER) (Cost=177 Card=102 rows Bytes=0/240)
     7     (6)       TABLE ACCESS (BY INDEX ROWID) OF ‘WIP_WORK_ORDER‘ (TABLE) (Cost=171 Card=102 rows Bytes=0/160)
     8     (7)        INDEX (RANGE SCAN) OF ‘IDX1_WIP_WORK_ORDER‘ (INDEX) (Cost=3 Card=729 rows Bytes=0/)
     9     (8)         FAST DUAL (Cost=2 Card=1 rows Bytes=0/)
    10     (6)       INDEX (RANGE SCAN) OF ‘PK_WIP_CODE‘ (INDEX (UNIQUE)) (Cost=6 Card=786 rows Bytes=0/15820)
    11     (3)    PARTITION RANGE (ITERATOR) (Cost=154 Card=153566712 rows Bytes=0/)
    12    (11)     INDEX (RANGE SCAN) OF ‘HLBRHIS_SHIP_CLM_MFDT‘ (INDEX) (Cost=154 Card=153566712 rows Bytes=18735104/)
    13    (12)      FAST DUAL (Cost=2 Card=1 rows Bytes=0/)
    14     (2)   TABLE ACCESS (BY LOCAL INDEX ROWID) OF ‘HLBRHIS_SHIP‘ (TABLE) (Cost=4077 Card=133150 rows Bytes=377257984/56)

------------- Plan Loading (Plan Hash Value:564968535) --------------

14: TABLE ACCESS BY LOCAL INDEX ROWID               ########################################(80.6%)
12: INDEX RANGE SCAN                                                    #####(10.01%)
  2: NESTED LOOPS                                                              #####(9.36%)
  1: HASH GROUP BY                                                           (.02%)
11: PARTITION RANGE ITERATOR                                  (.01%)

------------- Waits Events (Plan Hash Value:564968535) --------------

ON CPU on PHBLWDA1.HLBRHIS_SHIP(TABLE PARTITION)                                               #########################################(82.08%)
ON CPU on PHBLWDA1.HLBRHIS_SHIP_CLM_MFDT(INDEX PARTITION)                        ########(16.24%)
db file sequential read on PHBLWDA1.HLBRHIS_SHIP(TABLE PARTITION)                         #(1.06%)
ON CPU on PHBLWDA1.WIP_WORK_ORDER(TABLE)                                                           (.49%)
db file sequential read on PHBLWDA1.HLBRHIS_SHIP_CLM_MFDT(INDEX PARTITION)   (.11%)
db file scattered read on PHBLWDA1.HLBRHIS_SHIP(TABLE PARTITION)                           (.01%)
db file parallel read on PHBLWDA1.HLBRHIS_SHIP(TABLE PARTITION)                             (0%)
free buffer waits on PHBLWDA1.HLBRHIS_SHIP(TABLE PARTITION)                                   (0%)

------------- Statistics Data (Plan Hash Value:564968535)--------------

Loads: 28
Load Versions: 4
First Load Time: 2017-01-07/13:13:49
Last Load Time: 2017-01-10/01:33:57
User Openings: 0
Parse Calls: 312
Executions: 312
Sorts(Average): 0
Fetches(Average): 2
Disk Reads(Average): 124719.76
Buffer Gets(Average): 11172207.862
Elapsed Time(Average): 202.694 seconds
CPU Time(Average): 200.596 seconds
Run Time Memory(Average): 0M
PGA Size(Maximum): .009G
Temp Space(Maximum): 0G
SQL>

來自於http://www.hellodba.com/reader.php?ID=218&lang=EN的[One single SQL helps you to analyze the performance of a SQL]

时间: 2024-10-27 12:14:43

使用showplan.sql分析sql Performance的相关文章

转://使用showplan.sql分析sql Performance

在HelloDBA网站找到一个分析sql性能的工具-showplan,记录一下 showplan.sql下载路径:http://www.HelloDBA.com/Download/showplan.zip 使用方式就是调用该工具,传入SQL_ID作为参数. SQL> @/dmp/showplan.sql 26xj87b2f8g6u ---showplan.sql -- ################################################################

【转】Microsoft&#174; SQL Server&#174; 2012 Performance Dashboard Reports

http://www.cnblogs.com/shanyou/archive/2013/02/12/2910232.html SQL Server Performance Dashboard Reports是一组Reporting Services的报表,和SQL Server Management Studio中所介绍的报表一起使用.这些报表允许数据库管理员快速地确定他们的系统中是否存在瓶颈,瓶颈是否正在发生,捕获这些附加的诊断数据可能会对解决问题更有帮助.例如,系统正在等待disk IO,这

explain分析sql 语句

explain分析sql 语句 语法: explain + select 语句 explain select * from xxx where xxx; 结果解释: id: SELECT 识别符. 这是 SELECT 的查询序列号 select_type PRIMARY 子查询中最外层查询 SUBQUERY 子查询内层第一个 SELECT, 结果不依赖于外部查询 DEPENDENT SUBQUERY 子查询内层第一个 SELECT, 依赖于外部查询 UNION UNION 语句中第二个 SELE

mysql 分析3使用分析sql 性能 show profiles ;

show variables like '%profiling%';    查看状态  查看时间去哪了``` set  profiling=1;// 打开 show profiles;  查看执行过的sql 语句 show profile for query 2;   找到第二条为id为2的sql生成查询计划  分析查询状态 分析sql依据 时间花费在那些地方了 时间浪费在了数据传输. 通过 show profile for query 2;找到问题所在.

【MS SQL】通过执行计划来分析SQL性能

如何知道一句SQL语句的执行效率呢,只知道下面3种: 1.通过SQL语句执行时磁盘的活动量(IO)信息来分析:SET STATISTICS IO ON (开启) / SET STATISTICS IO OFF (关闭) 2.通过SQL语句执行时语法分析.编译以及执行所消耗的时间:SET STATISTICS TIME ON (开启) / SET STATISTICS TIME OFF (关闭) 3.通过执行计划查看:Ctrl + L -------------------------------

http和数据库sql分析与窃听技术

用tunnel,tunnel是一种技术称谓,将其放到真正的服务器和客户端之间.调试阶段可以使用webcream运行tomcat作为模拟的真正的服务器. 具体:用apache axis及其项目中的工具tcpmon. 但tunnel有个缺点,就是要重新配置客户端和服务器让他们发送请求道tunnel代理. 另: 在RMI协议上的监听:RMI指的是Remote method invocation,即远程过程调用,它是使用java 的JRMP(java remote method protocol)或II

mysql优化(三)–explain分析sql语句执行效率

mysql优化(三)–explain分析sql语句执行效率 mushu 发布于 11个月前 (06-04) 分类:Mysql 阅读(651) 评论(0) Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句. Explain语法:explain select … from … [where …] 例如:explain select * from

动态游标(例如表名作为参数)以及动态SQL分析

表名作为参数的动态游标 DECLARE v_table_name VARCHAR2(30) := 'CUX_MES_WIP_BARCODE_MAP'; --l_rec SYS_REFCURSOR; TYPE t_data IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER; TYPE t_cur IS REF CURSOR; l_data t_data; l_rec t_cur; l_cur VARCHAR2(4000); v_fm_barcode

如何使用SQLPLUS分析SQL语句(查询执行计划跟踪)

方法一:autotrace 1,  connect sys/密码 as sysdba,在sys用户下运行$ORACLE_HOME/sqlplus/admin/plustrce.sql这段sql的实际内容如下:set echo ondrop role plustrace;create role plustrace;grant select  on v_$sesstat to plustrace;grant select on v_$statname to plustrace;grant selec