zoukankan      html  css  js  c++  java
  • 設定讀數據時候不鎖的兩種方式

       有些报表或者只抓取数据的时候,允许脏读,但是不希望锁住数据,发生死锁的情况。

    在语句上可以使用下面的两种方法:

    1)with(nolock)

    这种方法比较麻烦,需要在所有表后面都加上此修饰词

    如:select a.a,b.b from a with(nolock) left jion b with(nolock) on a.id=b.leftID


    2)设定整个存储过程为READ UNCOMMITTED

    在这样做之前,需要设定数据库

    ALTER DATABASE db1 SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;
    ALTER DATABASE db1 SET READ_COMMITTED_SNAPSHOT ON;
    ALTER DATABASE db1 SET MULTI_USER;

    之后在存储过程的最前面增加
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
    需要注意的是:如果在设定数据库的时候只是用第二句,会造成无法运行完,只有三句一起,才能很快地执行完。

  • 相关阅读:
    请假两时间的小时数差
    Python3之旅
    python语法总结1
    关于命令行的小结
    从Java到C#再到python
    数据库知识
    Visual Studio高低版本的问题(以2008和2015为例)
    web api
    readoney和const
    null
  • 原文地址:https://www.cnblogs.com/wonder223/p/2704284.html
Copyright © 2011-2022 走看看