【发布时间】:2012-04-13 05:28:58
【问题描述】:
我的 google-fu 和 so-fu 在这里让我失望了,所以我不妨问问。
我有很多查询,其中包含多个连接。
在一个查询中,我将 header/item/details 连接在一起,并为这些记录查找各种信息。
加入时,我会尽量按照它们的相关性来排列。例如:我的标题有两个查找表,所以我会在加入我的项目表之前加入这些查找表。
正确吗?
在查找表之前加入更大的表会更好吗?或相反亦然?
我应该在加入小表时使用 loop 提示,而在加入 openrowsets 时应该使用 merge 提示吗?
我确信答案是“视情况而定”,但一些有效加入的一般准则会非常有帮助。谢谢!
【问题讨论】:
-
在大多数情况下,您不需要指定连接类型(合并/循环/哈希)。如果您这样做,则可能应该解决潜在的问题,而不是加入提示创可贴。
-
除非您非常清楚自己在做什么,并且您了解查询执行计划,否则切勿使用查询提示。
标签: sql-server database tsql join join-hints