gpt4 book ai didi

oracle - 我们给出 where 条件的顺序会影响性能吗?

转载 作者:行者123 更新时间:2023-12-02 08:39:39 24 4
gpt4 key购买 nike

最近开始学习oracle。我听说如果我们不遵循 where 的顺序,将会出现一些性能问题(如果我错了,请纠正我) SQL 查询中的条件{特别是当我们连接两个或多个表时}。如果是这样的话,应该遵循什么样的顺序以及我应该考虑哪些因素。请解释一下一般以及下面的场景,假设我有 3 张 table 。请查找 DDL 和 Sample data here

Part_material具有以ID为主键(PK)的基本信息,表Component将有不同类型的组件,其 ID,part_name 作为 PK,每个 ID 将有 30 到 40 个条目,表connection会有连接信息。我将如下连接这三个表:

select com.id,part.part_material,com.part_name,'TRUE',part.map_id,part.quantity,'INBOUND'
from Components com,Base_part part,connects rel
where part.id=com.id
and dbms_lob.compare(com.part_value,'Coat wi........')=0
and part.part_material in ('Barium','Tungston','Carbon')
and com.part_name='Build Material'
and rel.fromid=part.id
and rel.fromid=com.id
and rel.relname in ('Export Need','Not Molten');

如果我改变上面的顺序,性能会提高/降低吗?

最佳答案

Oracle 基于成本的优化器通常不受 WHERE 子句顺序的影响。

Tom Kyte 在 2009 年也回答过:

https://asktom.oracle.com/pls/asktom/f?p=100:11:0%3A%3A%3A%3AP11_QUESTION_ID:1857060700346051220

关于oracle - 我们给出 where 条件的顺序会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31431721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com