Recently in DB Category

在 SQL Server 要使用執行計畫是很簡單的,不像 Oracle 那麼的麻煩,只需要在 SQL Query Analyzer 工具裡即可使用執行計畫。

首頁先啟動「SQL Query Analyzer」,進到主畫面後,選擇上面的選單「Query」=> 然後選擇「Show Execution Plan」,如下圖所示:

 

之後只需在主視窗隨便輸入一個語法,如 select getdate() 或您要的語法,即可在主視窗下面看到執行計畫。如下圖

 

因SQL Server 支援一次執行多個 SQL Statement 所以可以一次執行多個指令,來作直接的效能比較。

使用Oracle資料庫時,常常會需要比較不同SQL語法的效能,除了只看執行時間外,尚可透過執行計畫的觀察來研判那一個語法效能會比較好,在Oracle資料庫裡就有 SQL*Plus 工具可以作簡易的執行計畫的查詢。
以下就來看看在Oracle DB 該如何使用查詢計畫

一、set autotrace語法及參的說明
1、語法: SET AUTOTRACE {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
參數說明:
SET AUTOTRACE OFF: 此為預設值,即關閉Autotrace功能
SET AUTOTRACE ON : 同時輸出執行計畫、統計資訊及執行結果。
SET AUTOTRACE ON EXPLAIN: 打開執行計畫報表,顯示語法執行結果,但不顯示統計資訊。
SET AUTOTRACE ON STATISTICS: 打開統計資訊報表,顯示語法執行結果,但不顯示執行計畫。
SET AUTOTRACE TRACEONLY : 顯示執行計畫和統計資訊,但不顯示命令的執行結果,但在traceonly的後面仍然可以追加explain或者statistics參數,等同於set autotrace on [explain|statistics]但是不顯示執行結果。


2、AUTOTRACE Statistics常用列解釋
db block gets : 從buffer cache中讀取的 block 的數量
consistent gets : 從buffer cache中讀取的 undo 資料的 block 的數量
physical reads : 從磁碟讀取的 block 的數量
redo sizeDML : 生成的 redo 的大小
sorts (memory) : 在記憶體執行的排序量
sorts (disk) : 在磁片上執行的排序量

二、Explain plan for 的使用
如果希望不要執行指令,然後依然可以看執行計畫,那可以使用 Explain plan 語法,語法如下 Sample:
explain plan for select sysdate from dual;
執行完後,需再下下面語法,查看執行計劃的內容:
select * from table(dbms_xplan.display());

November 2010: Monthly Archives





Powered by Movable Type 4.12