程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 查看SQL執行計劃常用方法

查看SQL執行計劃常用方法

編輯:關於SqlServer

不論是做為開發DBA還是維護DBA,總是或多或少地遇到SQL執行效率或者說SQL調優問題,查看執行計劃是必須的。一般我們可以用3種方法查看:

一、explain plan for

舉例就足以說明其用法

sys@ORCL> explain plan for
2 select sysdate from dual;
Explained.
sys@ORCL> select * from table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------
--------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost |
--------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | |
| 1 | TABLE ACCESS FULL | DUAL | | | |
--------------------------------------------------------------------
Note: rule based optimization
9 rows selected.

二、利用TKPROF工具

TKPROF是一個用於分析oracle跟蹤文件並且產生一個更加清晰合理的輸出結果的可執行工具。如果一個系統的執行效率比較低,一個比較好的方法是跟蹤用戶的會話並且使用TKPROF工具的排序功能格式化輸出,從而找出有問題的SQL語句。

TKPROF命令後面的選項及輸出文件各個列的含義在這裡不做詳細的介紹。 google一下就會有很多資料。

下面簡單描述一下TKPROF工具的使用步驟:

1、在session級別設置sql_trace=true

sys@ORCL> alter session set sql_trace=true;
Session altered.

如果要在pl/sql中對session級別設置true,可以使用dbms_system這個包:

sys@ORCL> exec dbms_system.set_sql_trace_in_session(sid,serial#,true);

2、指定一下生成的trace文件的名字,便於查找:

sys@ORCL> alter session set tracefile_identifier='yourname';

3、執行SQL語句。

4、利用TKPROF工具格式化輸出的trace 文件:

[oracle@q1test01 ~] $ tkprof /oracle/admin/orcl/udump/orcl_ora_10266_yourname.trc /oracle/yourname.txt explain=user/pwd aggregate=yes sys=no waits=yes sort=fchela

5、查看生成的文件再設置sql_trace=false:

sys@ORCL> alter session set sql_trace=false;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved