• SQL优化:创建索引,导致insert语句长时间等待



    SQL Server中创建索引,导致insert语句长时间等待,之前觉得在创建索引,应该会影响insert操作,但一直没有实际验证过,今天验证了下一下,果然是这样。

    1、在会话1中创建索引:

    点击(此处)折叠或打开

    1. create index idx_temp on temp(biz_date,func_code)



    2、在会话2中插入一条数据:
    insert into temp
    select top 1 * from ms_visit_acvt

    然后,会话2就阻塞住了。

    3、在会话3中查询阻塞情况,和创建索引时所需要的锁:



    从上图可以看出,会话1获取了表temp的S锁,而会话2在获取表temp的IX锁时,被阻塞住了,这里需要说明的是S锁与IX锁之间是不兼容的,所以会相互排斥,就会导致阻塞。

    正因为在创建索引的时候,会导致dml语句阻塞,所以SQL Server推出了联机创建索引的功能,这样就不会导致阻塞问题了。

  • 相关阅读:
    Android 逐帧动画
    MAP getLastKnownLocation()返回null的解决
    大数取余
    (a^b)%c和(a/b)%c
    HDU1046 Gridland
    顺序入栈的出栈方法种数
    HDU1021 Fibonacci Again
    HDU1019 Least Common Multiple
    HDU1018 Big Number
    HDU1013 Digital Roots
  • 原文地址:https://www.cnblogs.com/momogua/p/8304390.html
Copyright © 2020-2023  润新知