【问题标题】:Why do we need to analyze oracle tables [duplicate]为什么我们需要分析oracle表[重复]
【发布时间】:2015-10-30 11:20:11
【问题描述】:

我试图了解分析表将如何有助于提高 oracle 的性能,当优化器足够聪明地选择要处理的计划时,它不会获得最新的统计信息来选择一个吗?

同时给出一个例子和命令/最佳分析方法对我理解这个概念很有帮助

【问题讨论】:

  • 那你能把链接给我吗,我正在努力得到同样的东西。

标签: oracle database-performance database-optimization


【解决方案1】:
dbms_stats.gather_database_stats
dbms_stats.gather_schema_stats
dbms_stats.gather_table_stats
dbms_stats.gather_index_stats

但是这个问题太宽泛了 我建议你看看 Tom Kyte “Effective Oracle by Design”第 6 章

amazon link上的书

类似的问题在这里,AskTom 网站:

【讨论】:

  • 我了解 stats 本身是调优的广义概念,但想从专家那里获得基本概念。非常感谢您的建议,将检查链接。
【解决方案2】:

对于每个表,DML(UPDATE/DELETE/INSERT) 是一个持续的过程,因为应用程序加载、卸载和执行数据修改。现在,每次在访问这些表的数据库上运行任何查询时,优化器都会根据成本和响应制定执行计划,并使用统计信息生成最佳执行计划

因此,您的统计数据越精确和最新,生成的计划就越好,您的 sql 查询性能也是如此。

我们可以使用分析命令来获取这些 .通常数据库统计收集被安排为作业

谢谢, 卡利安

【讨论】:

  • analyze 语句已弃用,不应再使用。请改用dbms_stats
猜你喜欢
  • 2013-12-17
  • 1970-01-01
  • 2019-06-09
  • 2011-12-12
  • 1970-01-01
  • 2016-04-27
  • 2013-06-20
  • 2020-09-26
  • 1970-01-01
相关资源
最近更新 更多