【发布时间】:2015-10-30 11:20:11
【问题描述】:
我试图了解分析表将如何有助于提高 oracle 的性能,当优化器足够聪明地选择要处理的计划时,它不会获得最新的统计信息来选择一个吗?
同时给出一个例子和命令/最佳分析方法对我理解这个概念很有帮助
【问题讨论】:
-
那你能把链接给我吗,我正在努力得到同样的东西。
标签: oracle database-performance database-optimization
我试图了解分析表将如何有助于提高 oracle 的性能,当优化器足够聪明地选择要处理的计划时,它不会获得最新的统计信息来选择一个吗?
同时给出一个例子和命令/最佳分析方法对我理解这个概念很有帮助
【问题讨论】:
标签: oracle database-performance database-optimization
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 网站:
【讨论】:
对于每个表,DML(UPDATE/DELETE/INSERT) 是一个持续的过程,因为应用程序加载、卸载和执行数据修改。现在,每次在访问这些表的数据库上运行任何查询时,优化器都会根据成本和响应制定执行计划,并使用统计信息生成最佳执行计划
因此,您的统计数据越精确和最新,生成的计划就越好,您的 sql 查询性能也是如此。
我们可以使用分析命令来获取这些 .通常数据库统计收集被安排为作业
谢谢, 卡利安
【讨论】:
analyze 语句已弃用,不应再使用。请改用dbms_stats