我试图了解分析表如何有助于提升oracle的性能,当优化器足够智能选择要处理的计划时,它会不会获得最新的统计数据来选择那个?
同样给出一个示例和命令/最佳分析方法对我理解这个概念很有帮助
答案 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章
上的书类似的问题在AskTom网站上: