[20131031]從跟蹤檔案中抽取sql語句.txt
[20131031]從跟蹤檔案中抽取sql語句.txt
以前寫過利用tkprof順序抽取執行的sql語句
http://space.itpub.net/267265/viewspace-748041
但是遞迴語句沒有記錄下來。
今天看了一篇blog,記錄如下:
--說明:我修改2處:dept那行裡面的-1原文有錯,應該是半形-1。
--printf "%s %s %s>>>> %s\n", stmt_count, depth_level, cursor_no, $0
--我修改為
--printf "%04s %s %s>>>> %s\n", stmt_count, depth_level, cursor_no, $0
--這樣可以對齊顯示。順便貼上原始碼!
SQL> oradebug setmypid
SQL> oradebug event 10046 trace name context forever, level 12
or
SQL> alter session set events '10046 trace name context forever, level 12';
trimsql.sh
cat $1 | awk 'BEGIN {
# Initialization.
parse_line = 0
stmt_count = 0
depth = '${2:-1}'
}
{
# Performed on each row of the input file.
if (($1 == "PARSING") && ($2 == "IN") && ($3 == "CURSOR")) {
parse_line=1
stmt_count++
cursor_no = $4
depth_level = substr($6, 5)
}
else if (($1 == "END") && ($2 == "OF") && ($3 == "STMT")) {
parse_line=0
}
if (($1 == "ERROR") || (($1 == "PARSE") && ($2 == "ERROR"))) {
printf "%s\n", $0
}
if ((parse_line == 2) && (depth >= depth_level || depth == -1)) {
printf "%s %s %s>>>> %s\n", stmt_count, depth_level, cursor_no, $0
}
if (parse_line == 1) {
parse_line = 2
}
}'
以前寫過利用tkprof順序抽取執行的sql語句
http://space.itpub.net/267265/viewspace-748041
但是遞迴語句沒有記錄下來。
今天看了一篇blog,記錄如下:
--說明:我修改2處:dept那行裡面的-1原文有錯,應該是半形-1。
--printf "%s %s %s>>>> %s\n", stmt_count, depth_level, cursor_no, $0
--我修改為
--printf "%04s %s %s>>>> %s\n", stmt_count, depth_level, cursor_no, $0
--這樣可以對齊顯示。順便貼上原始碼!
SQL> oradebug setmypid
SQL> oradebug event 10046 trace name context forever, level 12
or
SQL> alter session set events '10046 trace name context forever, level 12';
trimsql.sh
cat $1 | awk 'BEGIN {
# Initialization.
parse_line = 0
stmt_count = 0
depth = '${2:-1}'
}
{
# Performed on each row of the input file.
if (($1 == "PARSING") && ($2 == "IN") && ($3 == "CURSOR")) {
parse_line=1
stmt_count++
cursor_no = $4
depth_level = substr($6, 5)
}
else if (($1 == "END") && ($2 == "OF") && ($3 == "STMT")) {
parse_line=0
}
if (($1 == "ERROR") || (($1 == "PARSE") && ($2 == "ERROR"))) {
printf "%s\n", $0
}
if ((parse_line == 2) && (depth >= depth_level || depth == -1)) {
printf "%s %s %s>>>> %s\n", stmt_count, depth_level, cursor_no, $0
}
if (parse_line == 1) {
parse_line = 2
}
}'
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-775398/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20160704]從跟蹤檔案抽取sql語句.txtSQL
- phalcon:跟蹤sql語句SQL
- [20150527]跟蹤單個sql語句.txtSQL
- sqlplus 跟蹤sql語句SQL
- [20211227]抽取跟蹤檔案中的繫結變數值.txt變數
- 使用10046跟蹤sql語句SQL
- Oracle執行語句跟蹤 使用sql trace實現語句追蹤OracleSQL
- 跟蹤 sql 的trace檔案SQL
- mysql如何跟蹤執行的sql語句MySql
- [20130226]跟蹤特定IP的sql語句.txtSQL
- [20150705]從AWR抽取有問題的sql語句.txtSQL
- 【MySQL】如何對SQL語句進行跟蹤(trace)?MySql
- 依據錯誤號來跟蹤sql語句SQL
- [20121101]tkprof抽取sql語句.txtSQL
- SQL效能的度量 - 語句級別的SQL跟蹤autotraceSQL
- 使用oracle的10046事件跟蹤SQL語句Oracle事件SQL
- 檔案-跟蹤檔案
- [20200326]dbms_monitor跟蹤與SQL語句分析.txtSQL
- [20200417]跟蹤特定sql語句以及v$open_cursor檢視.txtSQL
- oracle 使用者跟蹤 需要的sql語句總結OracleSQL
- [zt] oracle跟蹤檔案與跟蹤事件Oracle事件
- oracle跟蹤檔案與跟蹤事件(zt)Oracle事件
- oracle跟蹤檔案和跟蹤事件(zt)Oracle事件
- sql_trace跟蹤檔案中名詞簡寫說明SQL
- 透過java程式抽取日誌中的sql語句JavaSQL
- 通過java程式抽取日誌中的sql語句JavaSQL
- Oracle跟蹤檔案Oracle
- Oracle跟蹤檔案trace檔案Oracle
- [20200417]跟蹤特定sql語句以及v$open_cursor檢視2.txtSQL
- 解析listener跟蹤檔案
- git 忽略跟蹤檔案Git
- 尋找跟蹤檔案
- [20200424]跟蹤特定sql語句以及v$open_cursor檢視(再補充).txtSQL
- [20200422]跟蹤特定sql語句以及v$open_cursor檢視(補充).txtSQL
- 利用pl/sql執行本地的sql檔案中的sql語句SQL
- 控制檔案的跟蹤檔案全文
- [20120723跟蹤檔案的定位.txt
- 【最佳化】SQL_TRACE之生成跟蹤檔案SQL