oracle SQL语句执行监控方法
oracle SQL语句执行的监控脚本![@more@] --查找bad sql的方法: select * from (select buffer_gets, sql_text from v$sqlarea where buffer_gets >500000 order by buffer_gets desc) where rownum<=30; --執行次數SQL select sql_text,executions from (select sql_text,executions from v$sqlarea order by executions desc) where rownum<81; --讀磁盤多的SQL select sql_text,disk_reads from (select sql_text,disk_reads from v$sqlarea order by disk_reads desc) where
oracle 语法写法注意事项
SQL语法的写法注意[@more@]1,or请使用union all代替;2,with...as...尽量使用交叉查询来替代,必要时也可以使用join代替;3,in请使用exists代替;4,时间上用>= and <=请使用between代替;5,适当情况下增加trunk函数:6,若用IN (SELECT ...)本身就會自動distinct了…語法中也不需要寫distinct…7,在寫sql的where condition 時不要對column用function (如下原语句和优化后的语句对比:原语句: AND (TO_DATE(WORK_DATE,'YYYY-MM-DD') BETWEEN NVL(:start_date, TO_DATE('2000-01-01','YYYY-MM-DD'))AND NVL(:end_date, TO_DATE('2222-0