1、因为你的语句里都有个RN > :B2 AND RN <= :B1,因此,不好判断哪个执行计划更准确;
2、sample_size是分析时的取样比例,当然这个值越大就越精确,但表越大,这个比例越小,否则会耗费很多资源,这个一般由系统自动确定;
3、这个信息是旧的统计信息,也就是新的统计信息生成时,旧的统计信息要备份保存,所以分析时间和保存时间差距比较大;

解决方案 »

  1.   


    谢谢您的回复!
    RN > :B2 AND RN <= :B1,因此,不好判断哪个执行计划更准确;
    >是因为数据量么?那如上所说15万和25万左右的数据量,感觉相差不大。sample_size是分析时的取样比例,当然这个值越大就越精确
    >是否有可能因为第二种执行计划对应的sample_size总是5000,比例少,导致TABLE ACCESS FULL全表所以慢?那为什么每天都自动收集,只有这个表的sample_size一直不变呢?哪里还有设置?
      

  2.   


    谢谢您的回复!
    RN > :B2 AND RN <= :B1,因此,不好判断哪个执行计划更准确;
    >是因为数据量么?那如上所说15万和25万左右的数据量,感觉相差不大。
    是因为:B1和:B2不确定,所以,优化器不知道你具体要取多少数据,就算换成人去计算,也没办法确定哪个计划好。sample_size是分析时的取样比例,当然这个值越大就越精确
    >是否有可能因为第二种执行计划对应的sample_size总是5000,比例少,导致TABLE ACCESS FULL全表所以慢?那为什么每天都自动收集,只有这个表的sample_size一直不变呢?哪里还有设置?
    这个是系统自动确定的,你手工收集统计信息时,也可以设置它,但我上面说了,你的变量值都没有,谁也没办法确定哪个计划更好,比如:建筑工地说要沙子或水泥,没说要多少,你能确定用什么车辆去送吗?一个道理。