博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[20150803]无法通过sql_id找到sql语句2.txt
阅读量:7027 次
发布时间:2019-06-28

本文共 2715 字,大约阅读时间需要 9 分钟。

[20150803]无法通过sql_id找到sql语句2.txt

--前一阵子,在做优化时遇到1个无法通过sql_id找到sql语句的情况:

--就是因为共享池太小,执行次数少,没到取样时间,已经从共享池清除。

--实际上还有容易被忽略的情况是lob字段。通过例子来说明:以前遇到等待事件enq HW - contention时也遇到过:

1.建立测试环境:

SCOTT@test01p> @ver1
PORT_STRING                    VERSION        BANNER                                                                               CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0           12.1.0.1.0     Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0

SCOTT@test01p> create table t (id number , text clob);

Table created.

SCOTT@test01p> insert into t values (1,'aaa');

1 row created.

SCOTT@test01p> commit ;

Commit complete.

SCOTT@test01p> select rowid,t.* from t;

ROWID                      ID TEXT
------------------ ---------- -----------------------------
AAAX/SAAJAAAATeAAA          1 aaa

--执行多次。

SCOTT@test01p> @rowid AAAX/SAAJAAAATeAAA
    OBJECT       FILE      BLOCK        ROW DBA                  TEXT
---------- ---------- ---------- ---------- -------------------- ----------------------------------------
     98258          9       1246          0 9,1246               alter system dump datafile 9 block 1246

SCOTT@test01p> @10to16 98258

10 to 16 HEX   REVERSE16
-------------- ------------------
0000000017fd2 0xd27f0100

--17fd2表示的是object_id.

SCOTT@test01p> @spid

       SID    SERIAL# SPID   C50
---------- ---------- ------ --------------------------------------------------
       355          7 4680   alter system kill session '355,7' immediate;

SYS@test01p> select sql_id,sql_text from V$OPEN_CURSOR where sid=355 and  sql_text like 'table%\_17fd2%' escape '\';
SQL_ID        SQL_TEXT
------------- ------------------------------------------------------------
0dzargq9a6gg3 table_4_9_17fd2_0_0_0

SYS@test01p> select sys.dbms_sqltune_util0.sqltext_to_sqlid('table_4_9_17fd2_0_0_0'||chr(0)) c20 from dual;

C20
--------------------
0dzargq9a6gg3

--很容易猜到这个与lob字段有关。

2.查询sql_id=0dzargq9a6gg3:

SYS@test01p> select * from v$sql where sql_id='0dzargq9a6gg3';
no rows selected

SELECT DECODE (kglhdadr,

               kglhdpar, '父游标句柄地址',
               '子游标句柄地址')
          text,
       kglhdadr,
       kglhdpar,
       substr(kglnaobj,1,20),
       kglobhd0,
       kglobhd6,
       kglobhs0,kglobhs6,kglobt16,
       kglobhs0+kglobhs6+kglobt16,
       kglobhs0+kglobhs1+kglobhs2+kglobhs3+kglobhs4+kglobhs5+kglobhs6+kglobt16 N20
  FROM x$kglob
WHERE kglobt03 = '&1';

TEXT           KGLHDADR         KGLHDPAR         SUBSTR(KGLNAOBJ,1,20)  KGLOBHD0         KGLOBHD6           KGLOBHS0   KGLOBHS6   KGLOBT16 KGLOBHS0+KGLOBHS6+KGLOBT16        N20

-------------- ---------------- ---------------- ---------------------- ---------------- ---------------- ---------- ---------- ---------- -------------------------- ----------
子游标句柄地址 000007FF2668F1C8 000007FF57A166F0 table_4_9_17fd2_0_0_   000007FF2668F110 000007FF2BE09F08       4032       4032       3102                      11166      11166
父游标句柄地址 000007FF57A166F0 000007FF57A166F0 table_4_9_17fd2_0_0_   000007FF57A16638 00                     4072          0          0                       4072       4072

--不过这种情况查询查询x$kglob还是能查询到的。

转载地址:http://awmxl.baihongyu.com/

你可能感兴趣的文章
ios-设计模式-单例
查看>>
linux NFS 配置
查看>>
我的友情链接
查看>>
一些比较好的javaEE/ wildfly Demo
查看>>
mantis 在linux 下的安装使用
查看>>
exchange 2010 sp2 后续之日常维护脚本
查看>>
云计算分布式架构综述
查看>>
C++编程必备
查看>>
我的友情链接
查看>>
手把手教你使用cocosbuilder在cocos2d-x中建立单独骨骼动画文件(三)
查看>>
Java访问远程服务
查看>>
shell脚本编程总结
查看>>
新风系统是否真的有存在的必要呢?
查看>>
iOS开发之初识xib
查看>>
EJB 简单开发流程
查看>>
面对网络故障我能干什么?
查看>>
使用jQuery设置元素选中的问题及解决办法
查看>>
我的友情链接
查看>>
[转载] 杜拉拉升职记——50 筹码
查看>>
Hive企业级架构优化教程 Hive Sql优化、压缩和分布式缓存视频教程
查看>>