【问题标题】:When we should not use hash joins in sql-server?什么时候我们不应该在 sql-server 中使用散列连接?
【发布时间】:2011-12-20 10:01:44
【问题描述】:

什么时候我们不应该在 sql-server 中使用哈希连接?使用哈希连接会导致查询性能变慢的各种场景有哪些?

欢迎分享。

【问题讨论】:

    标签: sql sql-server sql-server-2008 join


    【解决方案1】:

    哈希联接对于较大的数据集非常有效,尤其是在没有索引或表大小变化很大的情况下。

    在较小的数据集上不使用哈希联接的两个主要考虑因素是:

    1. 内存限制

      • 哈希连接是内存密集型的,并尝试将至少一个表完全加载到内存中。如果内存不足,它需要以递归方式将记录写入磁盘或 tempdb
    2. 并发

      • 哈希联接不适合大量并发用户,因为如果它需要为每个请求的联接构建几个内存表,它只会消耗您的资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-07
      • 2016-01-10
      • 1970-01-01
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      相关资源
      最近更新 更多