Transcript
Page 1: SQL Tuning04-Interpreting Execution Plans

Interpreting Execution Plans1. :

1. ;2. ;3. ;

2. :1. SQL ;2. , ;

3. :1. PLAN_TABLE: EXPLAIN PLAN SQL/PLUS autotrace , ;2. v$sql_plan: Shared Pool Library Cache ;3. v$sql_plan_monitor:11g ;4. dba_hist_sql_plan: AWR ;5. stats$sql_plan: Statspack ;6. SQL Management Base: SQL Plan Management Baselines ;7. SQL tuning set;8. DBMS_MONITOR trace : 10046 ;9. 10053 trace ;

10. 10gR2 dump ;4. :

1. , , SQL , DBMS_XPLAN;

2. DBMS_XPLAN.DISPLAY(): plan_table ;3. DBMS_XPLAN.DISPLAY_CURSOR(): v$sql_plan ;4. DBMS_XPLAN.DISPLAY_AWR(): AWR ;5. DBMS_XPLAN.DISPLAY_SQLSET(): SQL tuning set ;6. DBMS_XPLAN.DISPLAY_SQL_PLAN_BASELINE(): SQL Plan Management Baselines

;5. EXPLAIN TABLE :

1. , PLAN_TABLE , SQL ;2. :EXPLAIN PLAN [SET STATEMENT_ID = 'text'] [INTO plan_table] FOR statement;

PLAN_TABLE ;3. PLAN_TABLE:

1. EXPLAN_PLAN PLAN_TABLE, , sys.plan_table$;SELECT * FROM dba_synonyms WHERE synonym_name = 'PLAN_TABLE';SELECT

table_name, TEMPORARY, duration FROM dba_tables WHERE table_name = 'PLAN_TABLE$';

2. $ORACLE_HOME/rdbms/admin/utlxplan.sql , ,session , ;

3. SQL ; , ,;

4. , ID PAREANT_ID ;4. DBMS_XPLAN.DISPLAY :DBMS_XPLAN.DISPLAY(table_name, statement_id, format,

filter_preds):1. table_name: PLAN_TABLE ;2. statement_id: , ;3. format: TYPICAL , , ;4. ;

5. statement_id ;

6. ;

6. AUTOTRACE:1. AUTOTRACE sql*plus , oracle7.3 , PLAN_TABLE ;2. PLUSTRACE v$ , $ORACLE_HOME/sqlplus/admin/plustrce.sql

;3. , ;4. EXPLAIN PLAN , ;5. :SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]];

1. ON: trace ;2. TRACEONLY: ;

6. :show autotrace;7. :

1. recursive calls: , , , . , ;, , ; shared_pool :alter system flush

shared_pool;2. db block gets: block . DML db block gets ,

,SELECT , REDO CR ;3. consistent gets: ( BLOCK), , arraysize ;

1. arraysize: , show arraysize ;2. :consistent gets=rows processed/arraysize, ;3. arraysize , ;

4. physical reads: , BLOCK ,BUFFER CACHE , BUFFER CACHE :alter system flush buffer_cache;

5. redo size: , DML ;6. bytes sent via SQL*Net to client: ;7. bytes received via SQL*Net from client: ;8. SQL*Net roundtrips to/from client:SQL , arraysize ;9. sorts (memory): , PGA;

10. sorts (disk): , ;11. rows processed: ;

8. v$sql_plan:1. v$sql_plan: library cahce ;PLAN_TABLE ;2. sql_id v$sql , address hash_value ;3. :

1. HASH_VALUE: library cache ;2. ADDRESS: SQL , ;3. CHILD_NUMBER: CURSOR ;4. POSITION: PARENT_ID ;5. PARENT_ID: ID, , , ;6. ID: ;7. PLAN_HASH_VALUE: ;

4. :SELECT * FROM table(DBMS_XPLAN.DISPLAY_CURSOR('sql_id'));5. v$sql_plan_statistics:

1. STATISTICS_LEVEL ALL ;2. GATHER_PLAN_STATISTICS hint;3. v$sql_plan_statistics_all: ;

6. v$sql_workarea: SQL CURSOR ;

9. AWR:1. AWR , , ;2. :

1. ;2. ;3. session ;4. ASH(Active Session History) ;

3. ;4. AWR :

1. V$ACTIVE_SESSION_HISTORY;2. V$metric views;3. DBA_HIST views:

1. DBA_HIST_ACTIVE_SESS_HISTORY;2. DBA_HIST_BASELINE;3. DBA_HIST_DATABASE_INSTANCE;4. DBA_HIST_SNAPSHOT;5. DBA_HIST_SQL_PLAN;6. DBA_HIST_WR_CONTROL;

5. sql_id AWR sql : SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY_AWR('g22czkqq3pxmb'));

6. AWR SQL :@$ORACLE_HOME/rdbms/admin/awrsqrpt;10. SQL Monitoring:11g;11. :

1. :1. , ;2. ;3. ;

2. :1. : , , , ;2. : , , , ;3. : , , , ;

3. :1. :356421;

2. :43652871;

3. :325410;

4. :1. , ;2. ;3. , , ;4. ;

12. , SQL Tuning Advisor ;

Top Related