sql trace 簡單測試
針對sql trace 做了如下案例分析
在當前seesion級別測試
1:啟用session跟蹤
SQL> alter session set sql_trace=true;
Session altered.
2:執行相關查詢或dml語句,捕捉相關資訊
SQL> select count(*) from C;
COUNT(*)
----------
10
3:此時會生成一個trace檔案,然後關閉會話跟蹤
SQL> alter session set sql_trace=false;
Session altered.
SQL>
4:檢視trace檔案儲存路徑
SQL> show parameter user_dump_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string /home/oracle/admin/ora10/udump
SQL>
5:檢視程式產生的是哪個trace檔案
SQL> SELECT c.value||'/'||d.instance_name||'_ora_'||a.spid||'.trc' trace_file_name
from v$process a,v$session b,v$parameter c,v$instance d
where a.addr=b.paddr
and b.audsid=userenv('sessionid')
and c.name='user_dump_dest';
TRACE_FILE_NAME
--------------------------------------------------------------------------------
/home/oracle/admin/ora10/udump/ora10_ora_6184.trc
SQL>
6:用tkprof 格式化trace檔案
[oracle@sxit-test1 ~]$ tkprof /home/oracle/admin/ora10/udump/ora10_ora_6184.trc /home/oracle/2.txt
TKPROF: Release 10.2.0.4.0 - Production on Mon Oct 10 18:34:06 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
[oracle@sxit-test1 ~]$
7:檢視格式化後的結果
[oracle@sxit-test1 ~]$ more /home/oracle/2.txt
TKPROF: Release 10.2.0.4.0 - Production on Mon Oct 10 18:34:06 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Trace file: /home/oracle/admin/ora10/udump/ora10_ora_6184.trc
Sort options: default
********************************************************************************
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
********************************************************************************
select count(*)
from C
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 0 21 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 4 0.00 0.00 0 21 0 1
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 66
Rows Row Source Operation
------- ---------------------------------------------------
1 SORT AGGREGATE (cr=21 pr=0 pw=0 time=144 us)
10 TABLE ACCESS FULL MT_AS_MSG_18 (cr=21 pr=0 pw=0 time=92 us)
針對結果,有幾點說明:
parse :表示解析
execute:表示執行
fetch:表示回顯
列值:
count: 表示執行的次數
elapsed表示執行sql所花費的時間,cpu表示執行sql消耗的cpu 時間,elapsed裡有wait 的時間
elapsed 和cpu time相差越大表示等待越嚴重
disk表示的是磁碟的物理讀
current表示的是dml操作對應的get buffer
query是select操作對應的get buffer
如果針對其他使用者程式,可參考以下網址
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28373936/viewspace-1722309/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- pl/sql中的forall簡單測試SQL
- oracle“SQL Trace”簡介OracleSQL
- PL/SQL中繫結變數使用的簡單測試SQL變數
- mysql簡單效能測試MySql
- Oracle logmnr簡單測試Oracle
- mysqlimport匯入簡單測試MySqlImport
- (一)Jmeter簡單介面測試JMeter
- Windows IO 效能簡單測試Windows
- Windows 10 TechPreview簡單測試WindowsView
- 簡單的 ping 測試
- Jmeter效能測試簡單使用JMeter
- try的簡單效能測試
- SQL TraceSQL
- 【PG效能測試】pgbench效能測試工具簡單使用
- 讓 API 測試變的簡單API
- Linux的OOMkiller簡單測試LinuxOOM
- Oracle RAC的TAF簡單測試Oracle
- index 包含null值得簡單測試IndexNull
- InnoSetup簡單教程一,安裝使用和簡單測試
- 【sql調優】cardinality測試與簡析SQL
- 簡單的神經網路測試神經網路
- ios最簡單的測試打包方式iOS
- MySQL Profile在5.7的簡單測試MySql
- 閃迴歸檔的簡單測試
- 關於oracle session的簡單測試OracleSession
- 簡單的hector連線casssandra測試
- 簡單的鍵值儲存測試
- Spring 測試:其實很簡單Spring
- 最簡單的jquery測試程式碼jQuery
- C++ 巢狀類簡單測試C++巢狀
- SQL_TRACESQL
- 單個SQL語句的10046 traceSQL
- 如何寫好測試用例以及go單元測試工具testify簡單介紹Go
- Android單元測試-作用以及簡單示例Android
- 移動效能測試---工具PerfDog簡單使用
- 一個簡單的介面測試框架 demo框架
- MySQL索引條件下推的簡單測試MySql索引
- mongoDB的主從複製簡單測試MongoDB