sql - 如何将 Explain 计划视为良好 - Oracle 10G

标签 sql oracle sql-execution-plan

什么时候 oracle 解释计划被认为是好的? 我正在尝试重构 DB Schema,但 View 中有太多查询,而且包太慢了。

例如,这是最糟糕的查询之一,给我这个解释计划:

计划 ALL_ROWSCost:18,096 字节:17 基数:1

我不问如何修复查询,只问如何将解释计划视为良好。谢谢!!

最佳答案

在考虑解释计划的结果之前,我们需要了解以下术语, 基数——估计每个操作产生的行数。
• 访问方法——访问数据的方式,通过表扫描或索引 使用权。 • 连接方法——用于将表相互连接的方法(例如散列、排序-合并等)。 • 连接类型——连接类型(例如,外连接、反连接、半连接等)。 • 连接顺序——表相互连接的顺序。
• 分区修剪——是否只访问必要的分区来回答查询?
• 并行执行——在并行执行的情况下,计划中的每个操作是否 并行进行?是否使用了正确的数据重新分配方法?

通过回顾四个关键 元素:基数估计、访问方法、连接方法和连接顺序;您可以确定执行计划是否是最佳可用计划。 本白皮书将为您提供帮助,http://www.oracle.com/technetwork/database/focus-areas/bi-datawarehousing/twp-explain-the-explain-plan-052011-393674.pdf

关于sql - 如何将 Explain 计划视为良好 - Oracle 10G,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13838173/

相关文章:

sql - 通过 Powershell 连接到 SQL Server(非本地)

sql - MSSQL - 选择在两列中找到的不同产品

Mysql NOT IS NULL 行为

php - PHP 中无休止的查询/循环?

java - 如何在Hibernate中模拟 "ON UPDATE NO ACTION"

sql - 尝试替换列时出现 Oracle SQL 错误 "ORA-00984: column not allowed here"

sql - 哪个查询计划更快/更好

sql-server - SQL Server 版本升级和缓存执行计划

SQL检查任何一天两次之间的DATE

java - 使用 Java 将 Oracle 数据库迁移到 MS Access 的最佳方法是什么?