Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 成本更低的查询运行时间更长_Oracle_Oracle11g_Oracle10g_Oracle Sqldeveloper - Fatal编程技术网

Oracle 成本更低的查询运行时间更长

Oracle 成本更低的查询运行时间更长,oracle,oracle11g,oracle10g,oracle-sqldeveloper,Oracle,Oracle11g,Oracle10g,Oracle Sqldeveloper,我有一个奇怪的情况。我有两个问题,唯一的区别是- 一个查询有CREATION_DATE>SYSDATE-4,另一个查询有 创建日期SYSDATE-4”查询的执行和提供输出比“CREATION_DATE

我有一个奇怪的情况。我有两个问题,唯一的区别是-

一个查询有CREATION_DATE>SYSDATE-4,另一个查询有 创建日期<系统日期-4

“CREATION_DATE>SYSDATE-4”查询的执行和提供输出比“CREATION_DATE 奇怪的是,当我为两人解释计划时

  • 两个查询的成本相同
  • 运行时间较长的查询比运行时间较短的查询具有更少的基数和字节
我附上两个项目的解释计划截图。 也许我遗漏了一些东西,但是一个查询怎么可能与另一个查询具有相同的成本,而且更重要的是,具有更多的基数和字节,运行时间更短呢?有人能解释一下吗


您确定估计基数是实际基数吗?你的统计数据可能已经过时了。对于每个查询,select count(*)的结果是什么?还可以尝试通过sqlplusTry中的autotrace查看实际执行计划,以使用“收集计划”\u统计计划a查看查询的实际处理方式。有时Oracle也没有充分考虑一些索引功能。例如,多列索引有“太多”列,索引范围扫描必须遍历太多页面。使用“set autotrace traceonly explain stat”执行两个查询,然后比较“物理读取”和“一致获取”的数量。“一致获取”显示查询执行总共处理了多少页。(PS:您使用的是哪个应用程序?)我想提一件事——我正在使用plsql developer(allaround automation)来运行查询。我将根据工具获取并显示初始数据集所需的时间报告上述内容。它是否真实地指示了执行查询所花费的时间?我希望我没有做错任何事情。“创建日期<系统日期-4”的count()是1559919,“创建日期>系统日期-4”的count()是0