为什么要分析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 网站上:
我试图了解分析表将如何有助于提高 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 网站上: