为什么我们需要分析oracle表

时间:2015-10-30 11:20:11

标签: oracle database-performance database-optimization

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

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

2 个答案:

答案 0 :(得分:0)

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

因此,您的统计信息越精确,越新,生成的计划就越好,您的SQL查询性能也就越高。

我们可以使用Analyze命令来获取这些。通常,DB统计信息收集被安排为作业

谢谢, 格利扬

答案 1 :(得分:0)

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