sql优化--识别’低效执行’的SQL语句
oracle中有两个重要的视图:-v$SQL和v$SQLAREA。
(一)-v$SQL中记录的信息和AUTOTRACE显示的信息完全一致。视图包含如下字段信息:
第一次执行一个查询'select count(*) from emp'后查询-v$SQL视图可得到
select sql_text,executions,disk_reads,optimizer_mode,buffer_gets,hash_valuefrom v$sql where sql_text='select count(*) from emp'
SELECT EXECUTIONS , DISK_READS, BUFFER_GETS, ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio, ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, SQL_TEXT FROM V$SQLAREA WHERE EXECUTIONS>0 AND BUFFER_GETS > 0 AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8 ORDER BY 4 DESC;