在查询运行时更新Oracle统计信息以提高性能?

时间:2014-09-29 07:46:48

标签: oracle performance statistics

我有一个运行的Oracle Insert查询,它已经忙了将近24小时 声明的SELECT部分成本为211M 现在我已经更新了源表的统计数据,并且成本已经显着降低到2M。

我应该停止并重新启动INSERT语句,还是新更新的统计信息会自动生效并开始加快效果?

我正在使用Oracle 11g。

1 个答案:

答案 0 :(得分:2)

  

我应该停止并重新启动INSERT语句,还是新更新的统计信息会自动生效并开始加快性能?

下次Oracle解析时会使用新统计信息。

因此,优化器无法根据运行时收集的统计信息更新执行计划,因为已经解析了查询并且已经选择了执行计划。

12c优化器可以带来的是adaptive dynamic execution。它能够根据actual execution statistics在运行时调整计划。您可以在http://docs.oracle.com/database/121/TGSQL/tgsql_optcncpt.htm

了解更多相关信息