TKPROF 命令語法

2021-06-28 09:54:10 字數 4131 閱讀 5926

一. 

tkprof命令語法:

tkprof  filename1, filename2 [ sort  = [ opion][,option] ]

[  print = integer ]

[ aggregate  = [ yes | no ] ]

[ insert = filename3 ]

[ sys = [ yes | no ]  ]

[  [ table = schema.table ] | [ explain = user/password ]  ]

[  record = filename ]

filename1 

指定的輸入檔案,可以是多個檔案聯起來。

filename2 

格式化輸出檔案。

sort  

在輸出到輸出檔案前,先程序排序。如果省去,則按照實際使用的順序輸出到檔案中。排序選項有以下多種:

prscnt  number of times parse was called

prscpu  cpu time parsing

prsela  elapsed time parsing

prsdsk  number of disk reads during parse

prsqry  number of buffers for consistent read during parse

prscu   number of buffers for current read during parse

prsmis  number of misses in library cache during parse

execnt  number of execute was called

execpu  cpu time spent executing

exeela  elapsed time executing

exedsk  number of disk reads during execute

exeqry  number of buffers for consistent read during execute

execu   number of buffers for current read during execute

exerow  number of rows processed during execute

exemis  number of library cache misses during execute

fchcnt  number of times fetch was called

fchcpu  cpu time spent fetching

fchela  elapsed time fetching

fchdsk  number of disk reads during fetch

fchqry  number of buffers for consistent read during fetch

fchcu   number of buffers for current read during fetch

fchrow  number of rows fetched

userid  userid of user that parsed the cursor

print  

只列出輸出檔案的第乙個

integer 

的sql

語句。預設為所有的

sql語句。

aggregate 

如果= no 

,則不對多個相同的

sql進行彙總。

insert  

sql 

語句的一種,用於將跟蹤檔案的統計資訊儲存到資料庫中。在

tkprof

建立指令碼後,在將結果輸入到資料庫中。

sys 

禁止或啟用

將sys

使用者所發布的

sql語句列表到輸出檔案中。

table

在輸出到輸出檔案前,用於存放臨時表的使用者名稱和表名。

explain 

對每條sql 

語句確定其執行規劃。並將執行規劃寫到輸出檔案中。

其中比較有用的乙個排序選項是

fchela

,即按照

elapsed time fetching

來對分析的結果排序(記住要設定初始化引數

timed_statistics=true

),生成的檔案將把最消耗時間的

sql放在最前面顯示。另外乙個有用的引數就是

sys,這個引數設定為

no可以阻止所有以

sys使用者執行的

sql被顯示出來,這樣可以減少分析出來的檔案的複雜度,便於檢視

二. tkprof命令輸出的解釋:

首先解釋輸出檔案中列的含義:

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

這步。

/trace/orcl_ora_7240.trc d:/orcl_ora_7240.txt 

aggregate=yes sys=no waits=yes sor

t=fchela

$tkprof orcl_ora_14483.trc allan.txt explain=system/manager aggregate=yes sys=no waits=yes sort=fchela

10046事件與tkprof命令

0 conn as sysdba 1 啟用10046 alter session set events 10046 trace name context forever,level 12 oradebug event 10046 trace name context forever,level 12...

tkprof引數詳解

tkprof引數詳解 table schema.table 指定tkprof處理sql trace檔案時臨時表的模式名和表名 insert scriptfile 建立乙個檔名為scriptfile的檔案,包含了tkprof存放的輸出sql語句 sys yes no 確定系統是否列出由sys使用者產生...

sql跟蹤及tkprof使用

在oracle資料庫中,awr是關於資料庫系統總體的負載情況和運 況的報告。而當系統負載都顯示正常,而client執行某些動作響應非常慢,或者某些終端連線的會話執行緩慢或異常時,就須要用到會話級別的跟蹤了。session級別跟蹤的方法有很多。比方當前會話的跟蹤,能夠執行命令 alter sessio...