Transact-SQL:Join-Hints - 差异,性能,限制

时间:2015-03-25 17:02:33

标签: sql-server performance join hints join-hints

我想知道连接提示(MERGE,HASH,LOOP,REMOTE)之间的差异。那么,在哪种情况下我应该选择哪一个?为什么?如何知道我应该使用哪种提示?

是否有使用提示的专业人士或反对者?

如果我使用正确的提示,我的查询性能会更好吗?还有坏事吗?

当我使用这些提示时,是否有任何限制?

1 个答案:

答案 0 :(得分:1)

最广泛使用的提示是许多电力用户不赞成的nolock。 SQL Server不鼓励使用提示。 SQL Server引擎非常,非常强大和复杂,通常会产生最好的'查询计划本身,往往会忽略大多数提示。如果没有使用索引,那么它的选择性不够(因此它不会支付SQL Server的使用费用)或者它的统计信息是陈旧的。在SQL Server 2008中很少,很少需要提示 - 您可能需要更多/更好的索引或更好的SQL。

您可能需要提示的唯一情况是,如果您尝试修复索引并且SQL Server未使用它们,或者未使用正确查询计划所指示的正确类型的Join加入内容。但这种情况非常罕见。