需要调用老熊的display_cursor_9i.sql 脚本获取执行计划------------------------------------------------------------------------------------ File name: sql9.sql-- Author: zhangqiao-- Copyright: zhangqiaoc@olm.com.cn----------------------------------------------------------------------------------alter session set nls_date_format='yyyymmdd';col file_name new_value file_name noprintselect to_char(sysdate,'yyyymmddhh24miss')||'_'||'&&1' file_name from dual;spool sql_&file_nameset pagesize 0SET VERIFY OFFset linesize 130-------------------------------------------------------------------------------------------------col CPU_TIME heading "CPU|TIME" for 999,999,999col ELAPSED_TIME heading "ELAPSED|TIME" for 999,999,999col PARSE_CALLS heading "PARSE|CALLS" for 999,999col DISK_READS heading "DISK|READS" for 999,999,999col BUFFER_GETS heading "BUFFER|GETS" for 999,999,999 col SORTS heading "SORTS" for 999,999col ROWS_PROCESSED heading "ROWS|PROCESSED" for 999,999,999 col FETCHES heading "FETCHES" for 999,999,999col EXECUTIONS heading "EXEC" for 999,999,999col CPU_PRE_EXEC heading "CPU|PRE EXEC" for 999,999,999col DISK_PRE_EXEC heading "DISK|PRE EXEC" for 999,999,999col GET_PRE_EXEC heading "GET|PRE EXEC" for 999,999,999col ROWS_PRE_EXEC heading "ROWS|PRE EXEC" for 999,999,999col ROWS_PRE_FETCHES heading "ROWS|PRE FETCHES" for 999,999,999------------------------------------------------------------------------------------------------- col TABLE_NAME heading "TABLE|NAME" for a15col OWNER heading "OWNER" for a5col TABLESPACE_NAME heading "TABLESPACE|NAME" for a10col LOGGING heading "LOG" for a3 col BUFFER_POOL heading "BUFFER|POOL" for a7col DEGREE heading "DEGREE" for a6col PARTITIONED heading "PART" for a4 col NUM_ROWS heading "NUM|ROWS" for 999,999,999col BLOCKS heading "BLOCKS" for 999,999,999 col EMPTY_BLOCKS heading "EMPTY|BLOCKS" for 999,999,999 col AVG_SPACE heading "AVG|SPACE" for 999,999,999 col AVG_ROW_LEN heading "AVG|ROW_LEN" for 999,999,999 col AVG_ROW_LEN heading "AVG|ROW_LEN" for 999,999,999 col LAST_ANALYZED heading "LAST|ANALYZED"------------------------------------------------------------------------------------------------- col TABLE_OWNER heading "TABLE|OWNER" for a10col INDEX_NAME heading "Index|Name" for a15col UNIQUENESS heading "UNIQUE" for a9col COLUMN_NAME heading "COLUMN|NAME" for a15col COLUMN_POSITION heading "COL|POS" for 999col DESCEND heading "DESC" for a4 ------------------------------------------------------------------------------------------------- col CHILD_NUMBER heading "CHILD|NUMBER" for 999col name heading "BIND|NAME" for a10 col value_string heading "VALUE|STRING" for a60col DATATYPE_STRING heading "DATATYPE|STRING" for a20------------------------------------------------------------------------------------------------- col program heading "PROGRAM" for a30col event heading "EVENT" for a40col total heading "TOTAL" for 999,999col wait_class heading "WAIT|CLASS" for a15------------------------------------------------------------------------------------------------- col DATA_TYPE heading "DATA|TYPE" for a15 col NULLABLE heading "NL" for a2 col HISTOGRAM heading "HIST" for a5 col DENSITY heading "DENSITY" for 999,999,999col NUM_NULLS heading "NUM|NULLS" for 999,999,999col NUM_BUCKETS heading "NUM|BUCKETS" for 999,999,999col AVG_COL_LEN heading "AVG|COL LEN" for 999,999,999------------------------------------------------------------------------------------------------- col LOGGING heading "LOG" for a3 col STATUS heading "STATUS" for a6col INDEX_TYPE heading "INDEX|TYPE" for a8col UNIQUENESS heading "Unique" for a9col BLEV heading "B|Tree|Level" for 99col LEAF_BLOCKS heading "Leaf|Blks" for 999,999col DISTINCT_KEYS heading "Distinct|Keys" for 999,999,999col AVG_LEAF_BLOCKS_PER_KEY heading "Average|Leaf Blocks|Per Key" for 99,999col AVG_DATA_BLOCKS_PER_KEY heading "Average|Data Blocks|Per Key" for 99,999col CLUSTERING_FACTOR heading "Cluster|Factor" for 999,999,999col COLUMN_POSITION heading "Col|Pos" for 999prompt ****************************************************************************************prompt CURSORprompt ****************************************************************************************@display_cursor_9i.sql &1 0@display_cursor_9i.sql &1 1@display_cursor_9i.sql &1 2promptprompt ****************************************************************************************prompt SQL STATSprompt ****************************************************************************************set pagesize 9999SELECT DISTINCT (SELECT USERNAME FROM DBA_USERS WHERE USER_ID = PARSING_USER_ID) PARSING_SCHEMA_NAME,MODULE FROM V$SQL WHERE hash_value = '&1'; select CPU_TIME,ELAPSED_TIME,DISK_READS, BUFFER_GETS, ROWS_PROCESSED,FETCHES, PARSE_CALLS, SORTS,EXECUTIONS from v$sqlarea where hash_value='&1';selectCPU_TIME/decode(EXECUTIONS,0,1,EXECUTIONS) CPU_PRE_EXEC,ELAPSED_TIME/decode(EXECUTIONS,0,1,EXECUTIONS) ELA_PRE_EXEC,DISK_READS/decode(EXECUTIONS,0,1,EXECUTIONS) DISK_PRE_EXEC,BUFFER_GETS/decode(EXECUTIONS,0,1,EXECUTIONS) GET_PRE_EXEC,ROWS_PROCESSED/decode(EXECUTIONS,0,1,EXECUTIONS) ROWS_PRE_EXEC,ROWS_PROCESSED/decode(FETCHES,0,1,FETCHES) ROWS_PRE_FETCHES,EXECUTIONS from v$sqlarea where hash_value='&1';promptprompt ****************************************************************************************prompt TABLESprompt ****************************************************************************************break on ownerWITH t AS (SELECT /*+ materialize */DISTINCT OBJECT_OWNER, OBJECT_NAME FROM (SELECT OBJECT_OWNER, OBJECT_NAME FROM V$SQL_PLAN WHERE hash_value = '&1' AND OBJECT_NAME IS NOT NULL))SELECT owner, TABLE_NAME, TABLESPACE_NAME, LOGGING, BUFFER_POOL, ltrim(DEGREE) DEGREE, PARTITIONED, NUM_ROWS, BLOCKS, EMPTY_BLOCKS, AVG_SPACE, AVG_ROW_LEN, LAST_ANALYZED FROM DBA_TABLES WHERE (OWNER, TABLE_NAME) IN (SELECT table_owner,table_name FROM dba_indexes WHERE (owner,index_name) IN (SELECT * FROM t) UNION ALL SELECT * FROM t);promptprompt ****************************************************************************************prompt INDEX INFOprompt ****************************************************************************************break on table_owner on table_name on index_name on index_type on uniqueness on LOGGING on statusWITH t AS (SELECT /*+ materialize */DISTINCT OBJECT_OWNER, OBJECT_NAME FROM (SELECT OBJECT_OWNER, OBJECT_NAME FROM V$SQL_PLAN WHERE hash_value = '&1' AND OBJECT_NAME IS NOT NULL)) SELECT A.TABLE_OWNER, A.TABLE_NAME, A.INDEX_NAME, UNIQUENESS, COLUMN_NAME, COLUMN_POSITION, DESCEND FROM DBA_INDEXES A, DBA_IND_COLUMNS B WHERE (A.OWNER, A.table_name) IN (SELECT table_owner,table_name FROM dba_indexes WHERE (owner,index_name) IN (SELECT * FROM t) UNION ALL SELECT * FROM t) AND A.OWNER = B.INDEX_OWNER AND A.INDEX_NAME = B.INDEX_NAME;promptprompt ****************************************************************************************prompt SQL WAIT HISTprompt ****************************************************************************************break on programSELECT PROGRAM,EVENT, SUM(CNT) TOTAL, WAIT_CLASS FROM (SELECT DECODE(SESSION_STATE, 'ON CPU', DECODE(SESSION_TYPE, 'BACKGROUND', 'BCPU', 'CPU'), EVENT) EVENT, REPLACE(TRANSLATE(DECODE(SESSION_STATE, 'ON CPU', DECODE(SESSION_TYPE, 'BACKGROUND', 'BCPU', 'CPU'), WAIT_CLASS), ' $', '____'), '/') WAIT_CLASS, PROGRAM, 1 CNT FROM V$ACTIVE_SESSION_HISTORY WHERE SQL_ID = '&&1' AND SAMPLE_TIME >= SYSDATE - 4 / 24 AND SAMPLE_TIME <= SYSDATE) GROUP BY EVENT, WAIT_CLASS, PROGRAM ORDER BY PROGRAM,TOTAL DESC; promptprompt ****************************************************************************************prompt TABLE COLUMNSprompt ****************************************************************************************break on owner on table_nameWITH t AS (SELECT /*+ materialize */DISTINCT OBJECT_OWNER, OBJECT_NAME FROM (SELECT OBJECT_OWNER, OBJECT_NAME FROM V$SQL_PLAN WHERE hash_value = '&1' AND OBJECT_NAME IS NOT NULL))SELECT OWNER, TABLE_NAME, COLUMN_NAME, DATA_TYPE, NULLABLE, DENSITY, NUM_NULLS, NUM_BUCKETS, AVG_COL_LEN, LAST_ANALYZED FROM DBA_TAB_COLS WHERE (OWNER, TABLE_NAME) IN (SELECT table_owner,table_name FROM dba_indexes WHERE (owner,index_name) IN (SELECT * FROM t) UNION ALL SELECT * FROM t) ORDER BY owner,table_name,COLUMN_ID;promptprompt ****************************************************************************************prompt INDEX STATSprompt ****************************************************************************************WITH t AS (SELECT /*+ materialize */DISTINCT OBJECT_OWNER, OBJECT_NAME FROM (SELECT OBJECT_OWNER, OBJECT_NAME FROM V$SQL_PLAN WHERE hash_value = '&1' AND OBJECT_NAME IS NOT NULL))SELECT INDEX_NAME, INDEX_TYPE, LOGGING, STATUS, BLEVEL BLEV, LEAF_BLOCKS, DISTINCT_KEYS, NUM_ROWS, AVG_LEAF_BLOCKS_PER_KEY, AVG_DATA_BLOCKS_PER_KEY, CLUSTERING_FACTOR, LAST_ANALYZED FROM DBA_INDEXES T WHERE (TABLE_OWNER, TABLE_NAME) IN (SELECT table_owner,table_name FROM dba_indexes WHERE (owner,index_name) IN (SELECT * FROM t) UNION ALL SELECT * FROM t) ORDER BY 1 /spool offundefine 1
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8242091/viewspace-720514/
,如需转载,请注明出处,否则将追究法律责任。