如何使用tkprof

來源:互聯網
上載者:User

CALL:每次SQL語句的處理都分成三個部分
Parse:這步將SQL語句轉換成執行計畫,包括檢查是否有正確的授權和所需要用到的表、列以及其他引用到的對象是否存在。
Execute:這步是真正的由Oracle來執行語句。對於insert、update、delete操作,這步會修改資料,對於select操作,這步就只是確定選擇的記錄。
Fetch:返回查詢語句中所獲得的記錄,這步只有select語句會被執行。
COUNT:這個語句被parse、execute、fetch的次數。
CPU:這個語句對於所有的parse、execute、fetch所消耗的cpu的時間,以秒為單位。
ELAPSED:這個語句所有消耗在parse、execute、fetch的總的時間。
DISK:從磁碟上的資料檔案中物理讀取的塊的數量。一般來說更想知道的是正在從緩衝中讀取的資料而不是從磁碟上讀取的資料。
QUERY:在一致性讀模式下,所有parse、execute、fetch所獲得的buffer的數量。一致性模式的buffer是用於給一個長時間啟動並執行事務提供一個一致性讀的快照,緩衝實際上在頭部儲存了狀態。
CURRENT:在current模式下所獲得的buffer的數量。一般在current模式下執行insert、update、delete操作都會擷取buffer。在current模式下如果在快取區發現有新的緩衝足夠給當前的事務使用,則這些buffer都會被讀入了緩衝區中。
ROWS: 所有SQL語句返回的記錄數目,但是不包括子查詢中返回的記錄數目。對於select語句,返回記錄是在fetch這步,對於insert、update、delete操作,返回記錄則是在execute這步。
Tkprof的使用步驟基本上遵循以下幾步:
1. 在資料庫層級上設定TIMED_STATISTICS為True。
8i資料庫需要修改init檔案增加TIMED_STATISTICS=true,然後重啟資料庫使其生效。
9i資料庫可以直接修改:
SQL> alter system set timed_statistics=false scope=both;
如果要在PL/SQL中對session層級上設定trace,可以使用dbms_session這個包:
SQL>exec dbms_system.set_sql_trace_in_session(sid,serial#,true);
3. 找到產生的正確的trace檔案,在init.ora初始化參數檔案中 user_dump_dest定義的路徑下可以找到。
4 對trace檔案使用tkprof工具進行分析。
tkprof tracefile outfile [explain=user/password] [options...]
一般來說,使用tkprof得到的輸出檔案中包含三個部分:
SQL語句本身。
相關的診斷資訊,包括cpu時間、總共消耗的時間、讀取磁碟數量、邏輯讀的數量、以及查詢中返回的記錄數目。
列出這個語句的執行計畫。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.