[20240410]为什么一条sql语句在实例2执行要慢的分析((补充).txt

来源:这里教程网 时间:2026-03-03 19:53:52 作者:

[20240410]为什么一条sql语句在实例2执行要慢的分析((补充).txt --//昨天的测试,链接:https://blog.itpub.net/267265/viewspace-3011962/ --//被别人问一些问题,既然从共享池清除,sqlhh.sql脚本应该查询不到,为什么有显示呢? --//sqlhh.sql脚本调用的是Tanel Poder的tpt/awr/awr_sqlstats_per_exec.sql脚本.查询的是dba_hist_sqlstat视图. --//里面并不是汇总,而是查询的是子光标的执行计划,视图dba_hist_sqlstat里面存在字段LOADED_VERSIONS,VERSION_COUNT . --//我的猜测将plan_hash_value相同的值汇集起来,VERSION_COUNT记录是plan_hash_value相同的数量, --//出现这种情况最大的可能是子光标的堆6被清除了,而且由于这个执行计划非常复杂,堆6占用空间也很大. 1.环境: SYS@127.0.0.1:9015/ywdb> @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.分析: SYS@127.0.0.1:9015/ywdb> @ sharepool/shp4 af4692qv1f56q 0 TEXT                  KGLHDADR         KGLHDPAR         C40                                        KGLHDLMD   KGLHDPMD   KGLHDIVC KGLOBHD0         KGLOBHD6           KGLOBHS0   KGLOBHS6   KGLOBT16   N0_6_16        N20   KGLNAHSH KGLOBT03        KGLOBT09 --------------------- ---------------- ---------------- ---------------------------------------- ---------- ---------- ---------- ---------------- ---------------- ---------- ---------- ---------- --------- ---------- ---------- ------------- ---------- child handle address  000000061217AEB8 00000005D3B15850   SELECT D.constraint_type as CONSTRAINT          0          0          0 00000005B4D48C50 00000005EC52B5D8       8600     705720       4617    718937     718937 3054965974 af4692qv1f56q          0 child handle address  0000000612665E30 00000005D3B15850   SELECT D.constraint_type as CONSTRAINT          0          0          0 0000000612665D78 00000005EC52B9E0       8600     705736       4617    718953     718953 3054965974 af4692qv1f56q          1 parent handle address 00000005D3B15850 00000005D3B15850   SELECT D.constraint_type as CONSTRAINT          0          0          0 00000005D0E6FFC8 00                     5424          0          0      5424       5424 3054965974 af4692qv1f56q      65535 --//可以发现子光标的堆6占用空间很大,KGLOBHS6=7057XX,接近700K,在共享池内存不足的情况下,被踢出很正常. --//而执行次数保持在父光标的堆0以及子光标的堆0中,这样能获得执行次数就很正常了. --//参考链接: --//https://blog.itpub.net/267265/viewspace-2936074/ => [20230220]探究v$session.SQL_EXEC_ID在共享池.txt --//https://blog.itpub.net/267265/viewspace-2937262/ => [20230227]探究v$session.SQL_EXEC_ID在共享池(补充).txt

相关推荐