为什么要分析oracle表

Why do we need to analyze oracle tables

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

还举个例子command/best分析方法对我理解这个概念很有帮助

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

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

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

谢谢, 卡莲

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 网站上: