国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

ORACLE SQL性能優化系列 (七)

2024-08-29 13:30:35
字體:
來源:轉載
供稿:網友


收集最實用的網頁特效代碼!


24.       用explain plan 分析sql語句

 

explain plan 是一個很好的分析sql語句的工具,它甚至可以在不執行sql的情況下分析語句. 通過分析,我們就可以知道oracle是怎么樣連接表,使用什么方式掃描表(索引掃描或全表掃描)以及使用到的索引名稱.

你需要按照從里到外,從上到下的次序解讀分析的結果. explain plan分析的結果是用縮進的格式排列的, 最內部的操作將被最先解讀, 如果兩個操作處于同一層中,帶有最小操作號的將被首先執行.

nested loop是少數不按照上述規則處理的操作, 正確的執行路徑是檢查對nested loop提供數據的操作,其中操作號最小的將被最先處理.

 

譯者按:

 

通過實踐, 感到還是用sqlplus中的set trace 功能比較方便.

舉例:

 

sql> list

  1  select *

  2  from dept, emp

  3* where emp.deptno = dept.deptno

sql> set autotrace traceonly /*traceonly 可以不顯示執行結果*/

sql> /

14 rows selected.

execution plan

----------------------------------------------------------

   0      select statement optimizer=choose

   1    0   nested loops

   2    1     table access (full) of 'emp'

   3    1     table access (by index rowid) of 'dept'

   4    3       index (unique scan) of 'pk_dept' (unique)

 

statistics

----------------------------------------------------------

          0  recursive calls

          2  db block gets

         30  consistent gets

          0  physical reads

          0  redo size

       2598  bytes sent via sql*net to client

        503  bytes received via sql*net from client

          2  sql*net roundtrips to/from client

          0  sorts (memory)

          0  sorts (disk)

         14  rows processed

 

通過以上分析,可以得出實際的執行步驟是:

1.       table access (full) of 'emp'

2.       index (unique scan) of 'pk_dept' (unique)

3.       table access (by index rowid) of 'dept'

4.       nested loops (joining 1 and 3)

 

     

注: 目前許多第三方的工具如toad和oracle本身提供的工具如oms的sql analyze都提供了極其方便的explain plan工具.也許喜歡圖形化界面的朋友們可以選用它們.

 

(待續)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇明县| 杭锦旗| 香格里拉县| 郧西县| 五寨县| 彭州市| 嘉义县| 乌鲁木齐县| 滨海县| 河间市| 陆川县| 禹城市| 阿瓦提县| 梁山县| 龙山县| 新丰县| 日喀则市| 德江县| 宁阳县| 军事| 邵阳县| 元阳县| 莱州市| 青岛市| 吴忠市| 福安市| 玉田县| 上高县| 连州市| 西华县| 衡东县| 易门县| 迭部县| 通道| 夏河县| 云阳县| 诸暨市| 周宁县| 庆城县| 密云县| 梁平县|