查询中表的连接顺序极其重要。连接顺序不当可能导致查询性能明显下降。
以下 SELECT
语句要求三向连接:
SELECT C.customer_num, O.order_num
FROM customer C, orders O, items I
WHERE C.customer_num = O.customer_num
AND O.order_num = I.order_num
优化器可以选择以下连接顺序之一:
- 将 customer 连接到 orders。
将结果连接到 items。
- 将 orders 连接到 customer。
将结果连接到 items。
- 将 customer 连接到 items。
将结果连接到 orders。
- 将 items 连接到 customer。
将结果连接到 orders。
- 将 orders 连接到 items。
将结果连接到 customer。
- 将 items 连接到 orders。
将结果连接到 customer。
有关数据库服务器如何根据特定的连接顺序执行计划的示例,请参阅查询计划执行示例。