为啥10g的结果不进缓存 你的参数是不是 没有用绑定变量,而是用硬编码的方式啊?show parameter cursor_sharing 看看两个数据库的是不是一样? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 和缓存应该没有关系虽说result cache是11g的新特性,但默认情况下并不启用,从执行计划中也可以看出这点两个查询的统计信息中,一致读差距很大,检查两个数据库中表的数据量的对比,以及占用块数的对比(从user_segments中查看)另外,执行计划中采用了hash join,我不太清楚这里的涉及到的字段的值的分别情况和选择性,这里可能有可以优化的空间 感谢您的回复,这条语句我是从一个函数里拿出来的,自己替换变量形成的测试数据。函数的话是不是都是绑定变量啊?这两个库的cursor_sharing都是EXACT 感谢您的回复,两个库的数据就差几天的,数据量差别不太大。10g下查询的结果:SQL> select SEGMENT_NAME,BYTES,BLOCKS from user_segments where SEGMENT_NAME='JMJKDA';SEGMENT_NAME BYTES BLOCKS--------------------------------------------------------------------------------- ---------- ----------JMJKDA 2130706432 26009611g下查询的结果:SQL> select SEGMENT_NAME,BYTES,BLOCKS from user_segments where SEGMENT_NAME='JMJKDA';SEGMENT_NAME BYTES BLOCKS--------------------------------------------------------------------------------- ---------- ----------JMJKDA 2147483648 262144另外11g的parameterSQL> show parameter resultNAME TYPE VALUE------------------------------------ ----------- ------------------------------client_result_cache_lag big integer 3000client_result_cache_size big integer 0result_cache_max_result integer 5result_cache_max_size big integer 16Mresult_cache_mode string MANUALresult_cache_remote_expiration integer 0说实话加入是因为这个新特性我就不纠结了... 10g的这边的统计信息没有问题11g的一致读这么小有点奇怪。不是因为结果缓存的事,result_cache_mode为manual,查询时要加hint才会生效可以在11g这边的语句做个10046看看 Oracle 使用别名进行比较 oracle 返回主键的问题 通过DBlink调用存储过程的奇怪问题 在SqlServer触发器中,'MSDASQL'分布式事务无法启动.....! 求助,ORACLE查询结果排序问题,难!(急!!!) Oracle 中修改了 IDLE_TIME ,需要重新启动吗 ? 请问个sql语句 用partition by 能解决否? 为什么监听器老是启动不了? 求教,如何把字符串转化为Number类型?分没了,攒两天补上 导入数据库问题 oracle 触发器 like'变量'应该怎么写 问个exce方面IF函数嵌套使用问题的问题?
虽说result cache是11g的新特性,但默认情况下并不启用,从执行计划中也可以看出这点两个查询的统计信息中,一致读差距很大,检查两个数据库中表的数据量的对比,以及占用块数的对比(从user_segments中查看)另外,执行计划中采用了hash join,我不太清楚这里的涉及到的字段的值的分别情况和选择性,这里可能有可以优化的空间
这两个库的cursor_sharing都是EXACT
感谢您的回复,两个库的数据就差几天的,数据量差别不太大。
10g下查询的结果:
SQL> select SEGMENT_NAME,BYTES,BLOCKS from user_segments where SEGMENT_NAME='JMJKDA';SEGMENT_NAME BYTES BLOCKS
--------------------------------------------------------------------------------- ---------- ----------
JMJKDA 2130706432 26009611g下查询的结果:
SQL> select SEGMENT_NAME,BYTES,BLOCKS from user_segments where SEGMENT_NAME='JMJKDA';SEGMENT_NAME BYTES BLOCKS
--------------------------------------------------------------------------------- ---------- ----------
JMJKDA 2147483648 262144另外11g的parameter
SQL> show parameter resultNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
client_result_cache_lag big integer 3000
client_result_cache_size big integer 0
result_cache_max_result integer 5
result_cache_max_size big integer 16M
result_cache_mode string MANUAL
result_cache_remote_expiration integer 0说实话加入是因为这个新特性我就不纠结了...
11g的一致读这么小有点奇怪。不是因为结果缓存的事,result_cache_mode为manual,查询时要加hint才会生效可以在11g这边的语句做个10046看看