sql_trace跟蹤檔案中名詞簡寫說明
SQL_trace是oracle提供的一個非常好的跟蹤工具,主要用來檢查資料庫的異常情況,通過跟蹤資料庫的活動,找到有問題的語句。
一、概述:
SQL_TRACE是Oracle的一個非常強大的工具。開啟SQL_TRACE就可以逐步捕獲任何一個會話的資料庫活動,或者捕獲整個資料庫的活動,並將資料庫活動記錄成跟蹤檔案。每次使用完之後需要關閉跟蹤,否則會降低系統的效能。
SQL_TRACE可以幫助診斷許多問題,其中包括:
二、用法:
1、檔案跟蹤的分類:
跟蹤DBA可以採用兩種方式進行跟蹤:
a.跟蹤整個資料庫例項。
只需要簡單的修改引數檔案(pfile/spfile)引數 SQL_TRACE = TRUE ,然後重新啟動資料庫即可。在全域性啟用SQL_TRACE會導致所有程式的活動被跟蹤,包括後臺程式及所有使用者程式,這樣也會資料庫導致效能下降比較明顯。
b.會話級跟蹤。
SQL_TRACE的通常使用方式是僅跟蹤一個會話。被跟蹤的會話可以是您自己的,也可以是其它使用者的會話。如果是自己的會話,只需要在SQL*PLUS中執行一下命令即可:
SQL> alter session set sql_trace = true;
類似的如果取消對會話的跟蹤,執行一下命令:
SQL> alter session set sql_trace = false;
如果需要跟蹤一個特定的會話,首先需要獲取會話的SID和Serial#,這些資訊可以在檢視V$SESSION中獲得,一旦知道了這兩個引數,就可以執行一下命令:
SQL> execute SYS.dbms_system.set_sql_trace_in_session(13,9,true);
同樣也可以使用這個過程關閉會話跟蹤:
SQL> execute SYS.dbms_system.set_sql_trace_in_session(13,9,false);
可以批量生成啟用指令碼語句:
SELECT username,
sid,
serial#,
program,
'exec sys.dbms_system.set_sql_trace_in_session(' || sid || ',' ||
serial# || ',true);'
FROM v$session a
WHERE a.username = 'SPCS_WMS_SH'
AND module = 'JDBC Thin Client';
2、跟蹤檔案的位置:
一旦為會話啟用了SQL_TRACE,ORACLE就會在udump管理區建立跟蹤檔案,檔案的目標位置由引數user_dump_dest來確定。每個操作都不會覆蓋原來的檔案,新的跟蹤記錄將會被追加到檔案末尾。通常情況下,可以通過以下SQL來確定檔名:
SELECT d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
p.spid || '.trc' trace_file_name
FROM (SELECT p.spid
FROM sys.v$mystat m, sys.v$session s, sys.v$process p
WHERE m.statistic# = 1
AND s.sid = m.sid
AND p.addr = s.paddr) p,
(SELECT t.instance
FROM sys.v$thread t, sys.v$parameter v
WHERE v.name = 'thread'
AND (v.value = 0 OR t.thread# = to_number(v.value))) i,
(SELECT VALUE FROM sys.v$parameter WHERE NAME = 'user_dump_dest') d;
3、計時資訊:
為了最大限度的利用跟蹤檔案,應該開啟計時標誌,通過引數TIMED_STATISTICTS=TRUE進行設定,這樣可以對每個SQL語句的執行時間等進行記錄,這個功能對系統效能的負擔很小。
開啟會話的計時資訊:
SQL> alter session set timed_statistics = true ;
開啟資料庫系統的計時資訊
SQL> alter system set timed_statistics = true ;
4、TKPROF:
通過前三步的設定已經知道如何生成SQL跟蹤檔案了,ORACLE生成的跟蹤檔案閱讀起來很困難(也就是易讀性很差)。ORACLE提供了一個格式化跟蹤檔案的工具 - TKPROF( Transient Kernel Profiler ),通過這個工具能將SQL檔案轉化為分析人員容易理解的格式。
一般TKPROF工具的使用的簡單方法,只用到了兩個關鍵字:跟蹤檔名和輸出檔名 (TKPROF的具體請參閱其他資料):
TKPROF
一、概述:
SQL_TRACE是Oracle的一個非常強大的工具。開啟SQL_TRACE就可以逐步捕獲任何一個會話的資料庫活動,或者捕獲整個資料庫的活動,並將資料庫活動記錄成跟蹤檔案。每次使用完之後需要關閉跟蹤,否則會降低系統的效能。
SQL_TRACE可以幫助診斷許多問題,其中包括:
二、用法:
1、檔案跟蹤的分類:
跟蹤DBA可以採用兩種方式進行跟蹤:
a.跟蹤整個資料庫例項。
只需要簡單的修改引數檔案(pfile/spfile)引數 SQL_TRACE = TRUE ,然後重新啟動資料庫即可。在全域性啟用SQL_TRACE會導致所有程式的活動被跟蹤,包括後臺程式及所有使用者程式,這樣也會資料庫導致效能下降比較明顯。
b.會話級跟蹤。
SQL_TRACE的通常使用方式是僅跟蹤一個會話。被跟蹤的會話可以是您自己的,也可以是其它使用者的會話。如果是自己的會話,只需要在SQL*PLUS中執行一下命令即可:
SQL> alter session set sql_trace = true;
類似的如果取消對會話的跟蹤,執行一下命令:
SQL> alter session set sql_trace = false;
如果需要跟蹤一個特定的會話,首先需要獲取會話的SID和Serial#,這些資訊可以在檢視V$SESSION中獲得,一旦知道了這兩個引數,就可以執行一下命令:
SQL> execute SYS.dbms_system.set_sql_trace_in_session(13,9,true);
同樣也可以使用這個過程關閉會話跟蹤:
SQL> execute SYS.dbms_system.set_sql_trace_in_session(13,9,false);
可以批量生成啟用指令碼語句:
SELECT username,
sid,
serial#,
program,
'exec sys.dbms_system.set_sql_trace_in_session(' || sid || ',' ||
serial# || ',true);'
FROM v$session a
WHERE a.username = 'SPCS_WMS_SH'
AND module = 'JDBC Thin Client';
2、跟蹤檔案的位置:
一旦為會話啟用了SQL_TRACE,ORACLE就會在udump管理區建立跟蹤檔案,檔案的目標位置由引數user_dump_dest來確定。每個操作都不會覆蓋原來的檔案,新的跟蹤記錄將會被追加到檔案末尾。通常情況下,可以通過以下SQL來確定檔名:
SELECT d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
p.spid || '.trc' trace_file_name
FROM (SELECT p.spid
FROM sys.v$mystat m, sys.v$session s, sys.v$process p
WHERE m.statistic# = 1
AND s.sid = m.sid
AND p.addr = s.paddr) p,
(SELECT t.instance
FROM sys.v$thread t, sys.v$parameter v
WHERE v.name = 'thread'
AND (v.value = 0 OR t.thread# = to_number(v.value))) i,
(SELECT VALUE FROM sys.v$parameter WHERE NAME = 'user_dump_dest') d;
為了最大限度的利用跟蹤檔案,應該開啟計時標誌,通過引數TIMED_STATISTICTS=TRUE進行設定,這樣可以對每個SQL語句的執行時間等進行記錄,這個功能對系統效能的負擔很小。
開啟會話的計時資訊:
SQL> alter session set timed_statistics = true ;
開啟資料庫系統的計時資訊
SQL> alter system set timed_statistics = true ;
4、TKPROF:
通過前三步的設定已經知道如何生成SQL跟蹤檔案了,ORACLE生成的跟蹤檔案閱讀起來很困難(也就是易讀性很差)。ORACLE提供了一個格式化跟蹤檔案的工具 - TKPROF( Transient Kernel Profiler ),通過這個工具能將SQL檔案轉化為分析人員容易理解的格式。
一般TKPROF工具的使用的簡單方法,只用到了兩個關鍵字:跟蹤檔名和輸出檔名 (TKPROF的具體請參閱其他資料):
TKPROF
相關文章
- 如何在 Git 中取消檔案的跟蹤Git
- Git跟蹤與提交檔案Git
- .gitignore忽略跟蹤指定檔案Git
- Hadoop之HDFS檔案讀寫流程說明Hadoop
- git刪除未跟蹤檔案Git
- git列出跟蹤的檔案列表Git
- git clean清除未跟蹤檔案Git
- [20190917]oracle跟蹤事件簡單寫法.txtOracle事件
- 轉:使用 Tkprof 分析 ORACLE 跟蹤檔案Oracle
- git列出所有已經跟蹤檔案Git
- 說說在 Python 中,如何寫入檔案Python
- fepk檔案格式說明
- CentOS8中systemd配置檔案說明CentOS
- [20211227]抽取跟蹤檔案中的繫結變數值.txt變數
- Nginx的配置檔案說明Nginx
- Linux中log檔案是什麼意思?Linux日誌檔案說明Linux
- Centos系統中 Systemd 的Unit檔案配置說明CentOS
- Centos7 中 Systemd 的Unit檔案配置說明CentOS
- nginx日誌配置檔案說明Nginx
- django的初始化檔案說明Django
- 【LOG】Oracle資料庫清理日誌、跟蹤檔案利器Oracle資料庫
- Windows下用命令列工具ADRCI跟蹤日誌檔案Windows命令列
- [20191221]12c查詢跟蹤檔案內容.txt
- 簡單說說webpack的配置檔案Web
- 專案範圍說明書如何編寫?
- Vuejs基本知識(三)【語法簡寫說明】VueJS
- SpringBoot Jar包瘦身 - 跟大檔案說再見!Spring BootJAR
- C++檔案說明及使用方法C++
- git將當前目錄下所有檔案納入跟蹤Git
- 分散式跟蹤系統zipkin簡介分散式
- Hanlp自然語言處理中的詞典格式說明HanLP自然語言處理
- 妙用 Intellij IDEA 建立臨時檔案,Git 跟蹤不到的那種IntelliJIdeaGit
- 易優CMS模板目錄各檔案說明
- Oracle安裝光碟內容的檔案說明Oracle
- 微服務分散式跟蹤工具Brave簡介微服務分散式
- CentOS 7升級核心簡明說明CentOS
- linux讀寫檔案 簡單版Linux
- jarsigner 簡單使用說明JAR
- OpenGrok簡單使用說明