【问题标题】:Transact-SQL: Join-Hints - Differences, Performance, LimitationsTransact-SQL:连接提示 - 差异、性能、限制
【发布时间】:2015-05-29 11:51:32
【问题描述】:

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

在使用提示方面有什么赞成或反对的意见吗?

如果我使用正确的提示,我的查询性能会更好吗?也有不好的地方吗?

当我使用这些提示时有什么限制吗?

【问题讨论】:

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


    【解决方案1】:

    使用最广泛的提示是许多高级用户不赞成的 nolock。 SQL Server 不鼓励使用提示。 SQL Server 引擎非常非常强大和复杂,通常会自行生成“最佳”查询计划,并且通常会忽略大多数提示。如果一个索引没有被使用,它要么没有足够的选择性(所以它不需要为 SQL Server 付费)或者它的统计数据是陈旧的。在 SQL Server 2008 和以后的版本中,您非常非常少需要提示 - 您可能需要更多/更好的索引或更好的 SQL。

    您可能需要提示的唯一情况是,如果您尝试修复索引并且 SQL Server 没有使用它们,或者它没有使用实际查询计划所指示的正确类型的 Join 来连接事物。但这种情况非常少见。

    【讨论】:

      猜你喜欢
      • 2017-10-25
      • 2010-10-03
      • 2019-08-06
      • 1970-01-01
      • 2010-09-29
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多