sql> SELECT executions, 2 disk_reads, 3 buffer_gets, 4 ROUND((buffer_gets - disk_reads) / buffer_gets, 2) hit_ratio, 5 sql_text 6 FROM v$sqlarea 7 WHERE executions > 0 8 AND buffer_gets > 0 9 AND (buffer_gets - disk_reads) / buffer_gets < 0.80 10 order by 4 desc ; EXECUTIONS DISK_READS BUFFER_GETS HIT_RATIO SQL_TEXT ---------- ---------- ----------- ---------- ----------------------------------------------------------------------- 16 180 369 .51 SELECT SKU,PREPACK_IND,CASE_ID,TRANSFER_QTY,UNIT_COST,UNIT_RETAIL,ROWID FROM TSF_DETAIL WHERE transfer = :1 order by sku 16 30 63 .52 SELECT TRANSFER,TO_STORE,TO_WH FROM TSFHEAD WHERE TRANSFER = :b1 AND TRANSFER_STATUS = 'A' 2 3 7 .57 SELECT SKU FROM UPC_EAN WHERE UPC = :b1 12 14 35 .60 SELECT SUBSTR(DESC_UP,1,30),DEPT,SYSTEM_IND FROM DESC_LOOK WHERE SKU = :b1 14 13 35 .63 SELECT UNIT_COST,UNIT_RETAIL,SUBCLASS FROM WIN_SKUS WHERE SKU = :b1 事實上,我們發現對特定的 SQL,上面的資料有些誤導,其實語句沒有問題。考慮下面 v$sqlarea 輸出: Executions Disk_Reads Buffer_Gets Hit_Ratio Sql_Text ---------- ---------- ----------- --------- -------------------- 2 6 19 0.68 SELECT A.EMP_NO, ... |