代码之家  ›  专栏  ›  技术社区  ›  Matthew Watson

Oracle的表统计信息收集

  •  3
  • Matthew Watson  · 技术社区  · 16 年前

    4 回复  |  直到 9 年前
        1
  •  5
  •   Nick Pierpoint    16 年前

    我不同意你总是在大量删除或插入之后重建统计数据。和以往一样,这要视情况而定。在数据仓库的情况下,当重新构建物化视图时,您将执行大量的删除和插入操作,但数据的基本结构不会改变。

    只有在发生错误时,才需要重新计算表上的统计信息 重要的 内容的变化。确实如此 必然是指在大量删除或插入之后,而是在删除、插入或更新实质性地改变了与可能的执行计划相关的内容时。

    如果要截断表并重建(这将重置统计信息),而不是进行昂贵的统计信息计算,通常最好先存储统计信息,然后在重建表后截断并恢复统计信息。

    要保存您使用的统计信息的当前视图,请执行以下操作:

    dbms_stats.export_table_stats
    

    要在以后恢复它们,请使用:

    dbms_stats.import_table_stats
    

    schema database .)

        2
  •  1
  •   stevechol    16 年前

    每当数据内容发生重大更改(例如大量删除或插入)时,应收集统计数据。如果表结构已更改,则还应收集统计数据。建议使用“估算”选项。

    如果可能的话,可以在工作时间以外作为一个自动化流程来执行此操作,或者如果必须在工作时间内执行此操作,那么请选择对希望收集统计数据的表具有最低访问权限的时间。

        3
  •  0
  •   oguy oguy    16 年前

    在使用估算值(样本百分比)时,确保收集的数据至少为10%。这可能会产生非常可疑的结果。

        4
  •  0
  •   ddelmoli ddelmoli    16 年前

    推荐文章