即使计划良好,Oracle Query也不会在没有统计信息收集的情况下针对大容量执行

时间:2019-05-22 07:45:49

标签: database oracle oracle11g database-performance

我使用批处理来处理大量数据,批处理卡在涉及表的特定查询上(表是永久性的,但用于临时保存数据,处理后表数据将被清除)。查询计划是好的,成本也很低。如果我将表和索引统计信息与数据一起收集并锁定,查询将在几秒钟内执行。但是当出现不同性质的数据时,查询将再次卡住。除了统计信息收集之外,是否还有其他可用选项来解决此问题。

1 个答案:

答案 0 :(得分:0)

也许您可以尝试使用动态采样(或动态统计信息,因为自版本12起该功能已被标记):https://blogs.oracle.com/optimizer/dynamic-sampling-and-its-impact-on-the-optimizer。这样一来,您就可以在调用中使用dynamic_sampling提示来收集每次执行的统计信息。