[20181013]12cR2 無法執行的sql語句會記錄在alert.log.txt
[20181013]12cR2 無法執行的sql語句會記錄在alert.log.txt
--//12C R2 支援無法執行的sql語句記錄在alert.log檔案中,預設執行100次.
--//首先無法執行的SQL語句語句一樣消耗共享池,增加出現SQL*Net break/reset to client相關等待時間.
--//以及sql語句的分析時間,對於特別頻繁的語句消耗更大.
--//當然以前可以使用10035事件跟蹤定位這些sql語句.
--//如果執行頻率高,可以在檢視v$active_session_history或者dba_hist_active_sess_history抓取到等待事件
--//SQL*Net break/reset to client.
--//注意知道sql_id無法透過檢視v$sql找到sql語句,只能透過x$kglob定位相關資訊.
--//連結 http://blog.itpub.net/267265/viewspace-2120884/=>[20160624]使用10035事件跟蹤無法執行的sql語句.txt
--//透過例子演示這個功能:
1.環境:
SCOTT@test01p> @ ver1
PORT_STRING VERSION BANNER CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0 12.2.0.1.0 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0
2.測試:
--//寫一個指令碼b3.txt內容如下:
select sysdate from xxxxxxxxxxxxxx;
/
/
....--//包含99個斜線
/
@b3.txt
...
3.檢查alert.log檔案:
2018-10-13T21:13:30.345877+08:00
TEST01P(3):select sysdate from xxxxxxxxxxxxxx
TEST01P(3):Additional information: hd=000007FF133F03A0 phd=000007FF13610B68 flg=0x20 cisid=81 sid=81 ciuid=81 uid=81
4.補充測試:
SYS@test> select sys.dbms_sqltune_util0.sqltext_to_sqlid('select sysdate from xxxxxxxxxxxxxx'||chr(0)) c20 from dual;
C20
--------------------
bb98w6dj7wz8p
SYS@test> select * from v$sql where sql_id='bb98w6dj7wz8p';
no rows selected
SYS@test> @ sharepool/shp4 bb98w6dj7wz8p 0
TEXT KGLHDADR KGLHDPAR C40 KGLHDLMD KGLHDPMD KGLHDIVC KGLOBHD0 KGLOBHD6 KGLOBHS0 KGLOBHS6 KGLOBT16 N0_6_16 N20 KGLNAHSH KGLOBT03 KGLOBT09
-------------- ---------------- ---------------- ---------------------------------------- ---------- ---------- ---------- ---------------- ---------------- ---------- ---------- ---------- --------- ---------- ---------- ------------- ----------
子游標控制程式碼地址 000007FF133F03A0 000007FF13610B68 select sysdate from xxxxxxxxxxxxxx 0 0 100 00 00 0 0 3171 3171 3171 1652456725 bb98w6dj7wz8p 0
父遊標控制程式碼地址 000007FF13610B68 000007FF13610B68 select sysdate from xxxxxxxxxxxxxx 1 0 100 000007FF1321AA70 00 4072 0 0 4072 4072 1652456725 bb98w6dj7wz8p 65535
--//KGLHDADR=000007FF13610B68 對應前面的phd=000007FF13610B68. 對應父遊標
--//KGLHDADR=000007FF133F03A0 對應前面的hd=000007FF133F03A0 對應子游標.
--//附上shp4.sql
column N0_6_16 format 99999999
SELECT DECODE (kglhdadr,
kglhdpar, '父遊標控制程式碼地址',
'子游標控制程式碼地址')
text,
kglhdadr,
kglhdpar,
substr(kglnaobj,1,40) c40,
KGLHDLMD,
KGLHDPMD,
kglhdivc,
kglobhd0,
kglobhd6,
kglobhs0,kglobhs6,kglobt16,
kglobhs0+kglobhs6+kglobt16 N0_6_16,
kglobhs0+kglobhs1+kglobhs2+kglobhs3+kglobhs4+kglobhs5+kglobhs6+kglobt16 N20,
kglnahsh,
kglobt03 ,
kglobt09
FROM x$kglob
WHERE kglobt03 = '&1' or kglhdpar='&1' or kglhdadr='&1' or KGLNAHSH= &2;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2216312/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 記錄所有執行了的 sql 語句MySql
- sql語句如何執行的SQL
- 一條SQL語句在MySQL中如何執行的MySql
- mysql的sql語句執行流程MySql
- SQL 語句的執行順序SQL
- SQL語句執行順序SQL
- 一條 SQL 語句在 MySQL 中是如何執行的?MySql
- 一條sql語句在mysql中是如何執行的MySql
- Laravel 獲取執行的sql語句LaravelSQL
- jsqlparser使用記錄---生成sql語句JSSQL
- 怎樣在sqlite3上執行SQL語句SQLite
- Mybatis 動態執行SQL語句MyBatisSQL
- 後臺執行SQL語句(oracle)SQLOracle
- mysql執行sql語句過程MySql
- sql語句執行緩慢分析SQL
- 查詢Oracle正在執行的sql語句及執行該語句的使用者OracleSQL
- SQL Server 查詢歷史執行的SQL語句SQLServer
- hibernate在JPA規範中在控制檯無法出現SQL語句SQL
- 必知必會——SQL語句基本語法整理SQL
- Laravel 框架查詢執行的 SQL 語句Laravel框架SQL
- 一條sql語句的執行過程SQL
- SQL語句各子句的執行順序SQL
- java連線oracle執行sql語句JavaOracleSQL
- MySQL cron定時執行SQL語句MySql
- 在oracle中跟蹤會話執行語句的幾種方法Oracle會話
- python關於pymysql 執行sql語句in的用法PythonMySql
- 一條SQL更新語句是如何執行的?SQL
- Hive SQL語句的正確執行順序HiveSQL
- 一條SQL更新語句是如何執行的SQL
- SQL 查詢語句的執行順序解析SQL
- 一條update SQL語句是如何執行的SQL
- 使用DataSource-Proxy在Spring Boot中記錄SQL語句 - Vlad MihalceaSpring BootSQL
- 一條更新的SQL語句是如何執行的?SQL
- [20240825]記錄表不存在sql語句執行呼叫kgllkal,kglpnal的情況(21c).txtSQL
- Mybatis原始碼解析之執行SQL語句MyBatis原始碼SQL
- [20181119]sql語句執行緩慢分析.txtSQL
- mysql sql語句執行超時設定MySql
- sql select語法執行順序SQL