程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle中如何使用TKPROF命令查看Tracefile

oracle中如何使用TKPROF命令查看Tracefile

編輯:Oracle教程

oracle中如何使用TKPROF命令查看Tracefile


Trace file(追蹤文件)是以trc為後續的文本文件,它記錄了各種sql操作及所消耗的時間等,根據trace文件我們就可以了解哪些sql導致了系統的性能瓶頸,進而采取恰當的方式調優。


當我們操作oracle數據庫,每次都會產生一個會話(session),session中記錄了所有操作,這些操作都會記錄在trace文件中。

 

如何使用TKPROF命令查看Trace file:

 

SQL>alter session set sql_trace=true;

 

SQL>select count(*) from all_objects;

COUNT(*)
----------
49880

 

SQL>select a.spid from v$process a,v$session b where a.addr=b.paddr and b.audsid=userenv(‘sessionid‘); -----查詢當前會話spid號為13052

SPID
----------
13052


SQL>SELECT VALUE FROM V$PARAMETER WHERE NAME = ‘user_dump_dest‘ ;--查看trace文件默認路徑

VALUE
----------
F:\ORACLE\PRODUCT\10.2.0\DB_1\ADMIN\ORCL\UDUMP

可以在該路徑下看到新生產的文件 orcl_ora_13052.trc ,不過這個trace 文件不易於閱讀,通過TKPROF命令轉換為易讀的文件

 

需要在命令窗口中執行,cmd打開命令窗口:

c:\>tkprof F:\oracle\product\10.2.0\db_1\admin\orcl\udump\orcl_ora_13052.trc output=F:\orcl_trc_13052.txt;

打開該文件可以看到如下信息:

 

\

COUNT:這個語句被parse、execute、fetch的次數。
CPU:這個語句對於所有的parse、execute、fetch所消耗的cpu的時間,以秒為單位。
ELAPSED:這個語句所有消耗在parse、execute、fetch的總的時間。
DISK:執行物理I/O次數,從磁盤上的數據文件中物理讀取的塊的數量。一般來說更想知道的是正在從緩存中讀取的數據而不是從磁盤上讀取的數據。
QUERY:在意一致性檢索方式獲得塊時,執行邏輯I/O次數;在一致性讀模式下,所有parse、execute、fetch所獲得的buffer的數量。一致性模式的buffer是用於給一個 長 時間運行的事務提供一個一致性讀的快照,緩存實際上在頭部存儲了狀態。
CURRENT:邏輯I/O次數,在current模式下所獲得的buffer的數量。一般在current模式下執行insert、update、delete操作都會獲取buffer。在current模式下如果在高速緩存區發現有新的緩存足夠給當前的事務使用,則這些buffer都會被讀入了緩存區中。
ROWS: 此階段,被處理或受影響的行數,所有SQL語句返回的記錄數目,但是不包括子查詢中返回的記錄數目。對於select語句,返回記錄是在fetch這步,對於insert、update、delete操作,返回記錄則是在execute這步。

 

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