当我们将t1连接到t2,连接到t3,连接到t4时,我们可以这样做:
t3->t4->t2->t1
t1->t2->t3->t4
t4->t3->t2->t1
.....有没有办法强制SQL Server中的优化器从连接链中的特定表开始?类似于Oracle中的领先
我正在寻找像like (在Oracle中)这样的解决方案在SQL Server中。
发布于 2015-09-29 21:49:59
如果除了连接的顺序之外,您还知道连接的类型,那么您可以明确表示:
SELECT *
FROM T1 HASH JOIN
T2
ON T1.ID = T2.T1_ID;这会强制执行排序和类型(请参阅here)。
如果希望在不强制顺序的情况下指定使用特定类型的联接,请改用option。而且,如果您想要排序而不是类型,请使用force order。但是,SQL Server优化器通常非常好,因此很少需要force order。
发布于 2015-09-29 21:05:11
有强制顺序提示:
SELECT * FROM T1 JOIN T2 ON T1.ID = T2.T1_ID OPTION (FORCE ORDER)https://stackoverflow.com/questions/32844758
复制相似问题