我想知道Oracle中的解释计划成本是否始终确定特定查询是否最有效(在性能,资源使用,磁盘访问等方面)?
我的问题是因为我有两张桌子。
两者都具有相同的结构和相同的数据。然后我有一个查询,成本是显着不同的。全局分区索引的成本非常低,本地分区索引的成本非常高。但是当我在SQL Developer中运行查询时,具有全局分区索引的表的响应时间更长。
感谢。
答案 0 :(得分:2)
两种不同的SQL语句的成本无法比较。它不能也不应该推断出更高的成本=更高的运行时间或IO / CPU使用率。
成本只是oracle在计算特定sql语句的所有可能的sql计划时应用的内部排名。 正如您所见,一个sql的低成本运行时间比高成本的sql要长。成本数字受到许多因素的影响,例如sql提示(first_rows等),表统计信息,系统级统计信息(加载统计信息,或在optimizer_index_cost_adj / optimizer_index_caching上设置不同的数字等)。
始终通过IO / CPU调整SQL(即实际资源使用情况)。真的忽略“成本”。
另见:http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:313416745628