Oracle效能分析3:TKPROF簡介

來源:互聯網
上載者:User

標籤:

tkprof它是Oracle它配備了一個命令直插式工具,其主要作用是將原始追蹤檔案格文字檔的類型,例如,最簡單的方法,使用下面的:

tkprof ly_ora_128636.trc ly_ora_128636.txt

tkprof帶有非常多參數,在多數情況下,使用這些參數對你的分析將非常有協助。

tkprof參數

假設不帶不論什麼參數執行tkprof,它將列印出完整的參數列表,並帶有簡單的描寫敘述。以下是對參數的說明:

explain
為每一個SQL語句提供一個運行計劃。

該參數須要指定使用者、密碼。也能夠指定資料庫連接串,如:explain=user/[email protected]_string或者explain=user/password。


table
紙盒explain參數一起使用,用於指定產生運行計劃使用的表,通常不須要指定,僅僅有當使用者不能建立表時才須要(如缺少create table許可權)。
print
用於限制輸出檔案產生的SQL語句的數量,比如:print=10.
aggregate
指定是否單獨處理相同內容的SQL語句。預設不單獨處理。指定為aggregate=no,看單獨的每一個SQL語句。


insert
產生SQL指令碼,SQL指令碼能夠用來儲存資訊到資料庫中,SQL指令碼的名字由參數指定,如:insert=load.sql。
sys
指定sys使用者執行的SQL語句是否也寫入到輸出檔案裡,預設yes。


record
產生SQL指令碼。裡麵包括在trace檔案裡找到的全部非遞迴語句,指令碼名通過參數本身來指定。比如:record=replay.sql。


waits
是否加入等待事件的資訊,預設加入。
sort
指定寫入輸出檔案裡的SQL語句的順序。預設是trace檔案裡發現的SQL順序。

 

以下是一個範例:

tkprof {input trace file} {output file} sys=no sort=prsela,exeela,fchela

prsela:第一個遊標解析耗費的時間
exeela:針對遊標運行花費的時間
fchela:遊標擷取資料行所花費的時間

tkprof輸出

輸出檔案帶有一個頭,當中有對參數的說明。例如以下:

**********************************************************************count    = number of times OCI procedure was executedcpu      = cpu time in seconds executing elapsed  = elapsed time in seconds executingdisk     = number of physical reads of buffers from diskquery    = number of buffers gotten for consistent readcurrent  = number of buffers gotten in current mode (usually for update)rows     = number of rows processed by the fetch or execute call**********************************************************************

count:啟動並執行資料庫調用次數
cpu:處理資料調用花去的CPU時間,以秒為單位
elapsed:處理資料庫調用花費的總的時間,以秒為單位
disk:物理讀的資料區塊數量,假設大於邏輯讀的數量(disk>query+current),表示使用了暫時資料表空間。


query:在一致性模式下從快速緩衝邏輯讀取的快數量。用作查詢。
current:在當前模式下從快速緩衝邏輯讀取的塊數量,用於insert、delete、merge以及update等操作。
rows:處理的資料行數量。查詢表示擷取的行數量。而insert、delete、merge以及update等則表示影響的行數量。

以下看一個詳細的範例:

call     count       cpu    elapsed       disk      query    current        rows------- ------  -------- ---------- ---------- ---------- ----------  ----------Parse        1      0.00       0.00          0          0          0           0Execute      1      0.00       0.00          0          0          0           0Fetch      501      0.03       0.15          0       1465          0       50001------- ------  -------- ---------- ---------- ---------- ----------  ----------total      503      0.03       0.15          0       1465          0       50001

上面分別相應了parse、execute和fetch這3個階段。在fetch階段運行了501次fetch,擷取了50001行資料,每次fetch擷取100行資料。
接下來是:

Misses in library cache during parse: 1Misses in library cache during execute: 1Optimizer mode: ALL_ROWSParsing user id: 5 

前兩行表示發生在解析和運行調用階段的硬解析數量。假設沒有硬解析。則不存在。
“Optimizer mode”表示最佳化器模式。


“Parsing user id”是解析SQL語句的使用者。
在這之後能夠看到運行計劃,這裡僅僅做一個簡單解說:

Rows     Row Source Operation-------  ---------------------------------------------------  50001  COUNT STOPKEY (cr=1465 pr=0 pw=0 time=300125 us)  50001   VIEW  (cr=1465 pr=0 pw=0 time=200088 us)  50001    INDEX FULL SCAN IDX_HISTORYALARM$CLEAR (cr=1465 pr=0 pw=0 time=100049 us)(object id 53743)

cr:一致性模式下邏輯讀出的資料區塊數
pr:從磁碟物理讀出的資料區塊數
pw:物理寫入磁碟的資料區塊數
time:以微妙表示的總的耗費時間,注意資料不精確
cost:操作的評估開銷(僅11g才提供)
size:操作返回的預預計資料量(位元組數)(僅11g才提供)
card:操作返回的預預計行數(僅11g才提供)

接下來就是等待事件:

  Event waited on                             Times Waited   Max. Wait  Total Waited  ----------------------------------------------------------------------------------  SQL*Net message to client                        502           0.00          0.00  SQL*Net message from client                      502           0.08         15.42  SQL*Net more data to client                      500           0.00          0.01

Times Waited:等待時間佔用時間
Max. Wait:單個等待事件最大等待時間,單位為秒
Total Waited:針對一個等待事件總的等待秒數。不精確


這裡你能夠看到運行中遇到的等待事件,通過對這些等待事件的分析。有助於你瞭解在等待什麼樣的資源,查詢的瓶頸,有針對的做出最佳化。

能夠在Oracle Database Reference在一份簡短的敘述中附錄的手冊描述了最常見的等待事件。

著作權聲明:本文博主原創文章。部落格,未經同意不得轉載。

Oracle效能分析3:TKPROF簡介

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.