[20180813]刷新共享池与父子游标.txt --//测试刷新共享池与父子游标含有那些信息保存在共享池. --//自己最近遇到的问题,感觉自己以前理解有点乱,测试看看. 1.环境 SCOTT@book> @ ver1 PORT_STRING VERSION BANNER ------------------- ---------- ---------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production 2.测试: --//session 1: select * from dept where deptno=10; --//确定sql_id=4xamnunv51w9j,可以查询v$sql视图确定. --//session 2: SYS@book> @ &r/sharepool/shp4 4xamnunv51w9j 0 TEXT KGLHDADR KGLHDPAR C40 KGLHDLMD KGLHDPMD KGLOBHD0 KGLOBHD6 KGLOBHS0 KGLOBHS6 KGLOBT16 N0_6_16 N20 KGLNAHSH KGLOBT03 KGLOBT09 -------------- ---------------- ---------------- ---------------------------------------- ---------- ---------- ---------------- ---------------- ---------- ---------- ---------- --------- ---------- ---------- ------------- ---------- 子游标句柄地址 000000007D9134A0 000000007D7110E0 select * from dept where deptno=10 1 0 000000007D6F2250 000000007BFF1138 4488 12144 3067 19699 19699 911274289 4xamnunv51w9j 0 父游标句柄地址 000000007D7110E0 000000007D7110E0 select * from dept where deptno=10 1 0 000000007D9E7608 00 4720 0 0 4720 4720 911274289 4xamnunv51w9j 65535 --//全部父子光标,父堆0.子堆0,6都在.KGLHDLMD=1.当前session 1,执行完该条语句,11g下游标不会释放. SYS@book> alter system flush shared_pool; System altered. SYS@book> @ &r/sharepool/shp4 4xamnunv51w9j 0 TEXT KGLHDADR KGLHDPAR C40 KGLHDLMD KGLHDPMD KGLOBHD0 KGLOBHD6 KGLOBHS0 KGLOBHS6 KGLOBT16 N0_6_16 N20 KGLNAHSH KGLOBT03 KGLOBT09 -------------- ---------------- ---------------- ---------------------------------------- ---------- ---------- ---------------- ---------------- ---------- ---------- ---------- --------- ---------- ---------- ------------- ---------- 子游标句柄地址 000000007D9134A0 000000007D7110E0 select * from dept where deptno=10 1 0 00 00 0 0 3067 3067 3067 911274289 4xamnunv51w9j 0 父游标句柄地址 000000007D7110E0 000000007D7110E0 select * from dept where deptno=10 1 0 000000007D9E7608 00 4720 0 0 4720 4720 911274289 4xamnunv51w9j 65535 --//父子游标,父游标堆0,子游标都没有清除.并且KGLHDLMD=1 --//子游标堆0,子游标堆6清除. --//当前执行的语句,游标不会关闭,刷新共享池,并不能父子游标,父游标堆0,子游标. --//是否可以这么理解KGLHDLMD=1的情况下,不会清除全部信息. --//session 1: SCOTT@book> select sysdate from dual; SYSDATE ------------------- 2018-08-14 09:00:11 --//session 2: SYS@book> alter system flush shared_pool; System altered. SYS@book> @ &r/sharepool/shp4 4xamnunv51w9j 0 no rows selected --//可以发现光标已经全部清除.因为session 1当前执行的是 select sysdate from dual;. --//sql_id=4xamnunv51w9j的游标已经关闭.这样刷新共享池,可以完全清除. --//忘记在刷新前看看游标的情况,补充测试3. 3.测试: --//session 1: select * from dept where deptno=10; select sysdate from dual; --//注意当前语句不是select * from dept where deptno=10;. --//session 2: SYS@book> @ &r/sharepool/shp4 4xamnunv51w9j 0 TEXT KGLHDADR KGLHDPAR C40 KGLHDLMD KGLHDPMD KGLOBHD0 KGLOBHD6 KGLOBHS0 KGLOBHS6 KGLOBT16 N0_6_16 N20 KGLNAHSH KGLOBT03 KGLOBT09 -------------- ---------------- ---------------- ---------------------------------------- ---------- ---------- ---------------- ---------------- ---------- ---------- ---------- --------- ---------- ---------- ------------- ---------- 子游标句柄地址 000000007D8A5B98 000000007DB3C798 select * from dept where deptno=10 0 0 000000007D72DD88 000000007C9A8358 4520 12144 3067 19731 19731 911274289 4xamnunv51w9j 0 父游标句柄地址 000000007DB3C798 000000007DB3C798 select * from dept where deptno=10 0 0 000000007DAFF9F0 00 4720 0 0 4720 4720 911274289 4xamnunv51w9j 65535 --//全部父子光标,父堆0.子堆0,6都在.KGLHDLMD=0. SYS@book> alter system flush shared_pool; System altered. SYS@book> @ &r/sharepool/shp4 4xamnunv51w9j 0 no rows selected 4.测试: --//测试会话缓存光标的情况. --//session 1: SCOTT@book> show parameter session_cached_cursors NAME TYPE VALUE ---------------------- ------- ----- session_cached_cursors integer 50 select * from dept where deptno=10; select sysdate from dual; select * from dept where deptno=10; select sysdate from dual; select * from dept where deptno=10; select sysdate from dual; select * from dept where deptno=10; select sysdate from dual; --//执行3次以上,注意最后一条语句是select sysdate from dual; --//session 2: SYS@book> @ &r/sharepool/shp4 4xamnunv51w9j 0 TEXT KGLHDADR KGLHDPAR C40 KGLHDLMD KGLHDPMD KGLOBHD0 KGLOBHD6 KGLOBHS0 KGLOBHS6 KGLOBT16 N0_6_16 N20 KGLNAHSH KGLOBT03 KGLOBT09 -------------- ---------------- ---------------- ---------------------------------------- ---------- ---------- ---------------- ---------------- ---------- ---------- ---------- --------- ---------- ---------- ------------- ---------- 子游标句柄地址 000000007D4BB278 000000007D4BB608 select * from dept where deptno=10 1 0 000000007D4BB1C0 000000007BA63988 4528 12144 3067 19739 19739 911274289 4xamnunv51w9j 0 父游标句柄地址 000000007D4BB608 000000007D4BB608 select * from dept where deptno=10 1 0 000000007D4BF948 00 4720 0 0 4720 4720 911274289 4xamnunv51w9j 65535 --//执行3次以后,KGLHDLMD=1. --//你可以在每次执行select sysdate from dual;查看sql_id=4xamnunv51w9j光标情况. --//仅仅第3次后KGLHDLMD=1. SYS@book> alter system flush shared_pool; System altered. SYS@book> @ &r/sharepool/shp4 4xamnunv51w9j 0 TEXT KGLHDADR KGLHDPAR C40 KGLHDLMD KGLHDPMD KGLOBHD0 KGLOBHD6 KGLOBHS0 KGLOBHS6 KGLOBT16 N0_6_16 N20 KGLNAHSH KGLOBT03 KGLOBT09 -------------- ---------------- ---------------- ---------------------------------------- ---------- ---------- ---------------- ---------------- ---------- ---------- ---------- --------- ---------- ---------- ------------- ---------- 子游标句柄地址 000000007D4BB278 000000007D4BB608 select * from dept where deptno=10 1 0 00 00 0 0 3067 3067 3067 911274289 4xamnunv51w9j 0 父游标句柄地址 000000007D4BB608 000000007D4BB608 select * from dept where deptno=10 1 0 000000007D4BF948 00 4720 0 0 4720 4720 911274289 4xamnunv51w9j 65535 --//父子游标,父游标堆0,子游标都没有清除.并且KGLHDLMD=1 --//子游标堆0,子游标堆6清除. --//当前执行的语句不是该条,但是当会话缓存游标以后,刷新共享池,并不能清除父子游标,父游标堆0,子游标. --//也就是刷新共享池无法完全清除会话缓存的光标. --//附上shp4.sql脚本: $ cat sharepool/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;
[20180813]刷新共享池与父子游标.txt
来源:这里教程网
时间:2026-03-03 11:54:31
作者:
编辑推荐:
- [20180813]刷新共享池与父子游标.txt03-03
- Word2010自动保存设置的操作过程03-03
- Word2010中怎么使用中英翻译功能03-03
- oracle优化--表优化(临时表)03-03
- 注册静态监听(Register static listener)03-03
- Word2010怎样设置自定义的编号03-03
- 怎样使用word2010审阅03-03
- Word2010删除回车符的操作步骤03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 注册静态监听(Register static listener)
注册静态监听(Register static listener)
26-03-03 - 总结导致oracle数据库主机CPU sys%高的一些原因
总结导致oracle数据库主机CPU sys%高的一些原因
26-03-03 - Word2010怎样修改设置好的样式
Word2010怎样修改设置好的样式
26-03-03 - 数据库优化:Oracle18.3:透过告警日志从安装初始化过程看 18c 的新改变
- Oracle常见死锁发生的原因以及解决方法
Oracle常见死锁发生的原因以及解决方法
26-03-03 - ATP 正式上线!
ATP 正式上线!
26-03-03 - word2010如何设置空心字
word2010如何设置空心字
26-03-03 - DG中DUPLICATE时报ORA-17628错误
DG中DUPLICATE时报ORA-17628错误
26-03-03 - 数据库流行度8月全球排行榜:Oracle 再次飙涨,DB2不升反降
数据库流行度8月全球排行榜:Oracle 再次飙涨,DB2不升反降
26-03-03 - Manual类型的SQL Profile
Manual类型的SQL Profile
26-03-03
