none
同时执行多个SELECT语句产生的S锁会相互影响? RRS feed

  • 问题

  • 这2个语句读了同一条数据,第一个语句超过30秒ABORT,看起来像是两个语句产生的共享锁相互影响?我想问的是如果同时执行同一条数据是否会导致查询效率的问题,语句没有加nolock

    2020年1月16日 7:28

答案

全部回复

  • 不会影响;

    你可以在一个事务中查询,不提交,然后新建立一个事务查询,立即有结果返回的;

    一般select的锁是防止脏读的;nolock会导致脏读;


    family as water

    2020年1月17日 0:32
  • 共享锁与共享锁不冲突,除非你强制改了锁类型
    2020年1月17日 0:51
  • 你好,

    共享锁定义是假设事务T1对数据A加上共享锁,那么事务T2可以读数据A,不能修改数据A。

    select默认产生共享锁,且不会相互影响的。


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    2020年1月17日 1:35
  • 你好,

    共享锁定义是假设事务T1对数据A加上共享锁,那么事务T2可以读数据A,不能修改数据A。所以共享锁是不会相互影响的。


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

       奇怪了我这看扩展信息,经常发现查同一条记录,然后第一个会ABORT,第二个又非常慢,语句是非常简单的那种select * from xxx where id=1
    2020年1月17日 1:37
  • 数据库默认的事务级别是什么?默认应该是READ COMMITTED

    family as water

    2020年1月18日 1:10
  • 数据库默认的事务级别是什么?默认应该是READ COMMITTED

    family as water

       READ COMMITTED
    2020年1月19日 1:26