zoukankan      html  css  js  c++  java
  • MS SQL 事务隔离级别


    自己在网上看了些资料,整理一下:

    事务隔离级别分类:
    未提交读:在多个事务之间使用它将会是非常危险,一般不使用。
    已提交读:一个事务读取的数据在事务运行期间可能被另一个事务更改,两次读的数据可能不一样。
    可重复读:会阻止现有的数据被更改,但不会阻止新数据插入到SELECT语句的结果集中。
    可序列化:比可重复读级别更严格,不仅会锁定事务所读取的数据,还会锁定事务的读取范围,锁定范围的叫做范围锁,
                  它会锁定SELECT的WHERE的范围,范围锁在关联索引存在的时候使用,如果没有关联索引,则使用表级锁。

    行版本控制来读取数据的事务级别:
    已提交读快照: 用于减少阻塞,注意这是一个数据库选项。
    快照:用于一致性读操作,忽略了事务运行过程中数据的更改。

    处理阻塞应该遵守以下规则:

    l          事务要尽量短

    l          不要在事务之中请求用户输入

    l          在读数据的时候考虑使用行版本管理

    l          在事务中尽量访问最少量的数据。

    l          尽可能地使用低的事务隔离级别。
    几个常用阻塞诊断SQL语句:

    Code

    为了防止并处理死锁,应该遵守以下原则:

    l          遵守最少化阻塞的规则。阻塞越少,发生死锁的机会就越少。

    l          在事务中要按一致的顺序访问对象。如果在以上示例中的两个事务都按一个顺序访问表,就不会发生死锁。因此,要在数据库中定义对所有表的访问顺序。

    l          在错误处理程序中检查错误1205并在错误发生时重新提交事务。

    l          在错误处理程序中加入一个过程将错误的详细信息写入日志。

    更多查看http://book.csdn.net/bookfiles/121/1001213922.shtml

  • 相关阅读:
    批处理显示系统信息与硬件信息
    批处理获取操作系统版本信息
    k2 4.6.9安装记录-够复杂了
    NAT路由器打洞原理
    function与感叹号
    leetcode 83. Remove Duplicates from Sorted List
    leetcode 53. Maximum Subarray
    leetcode 101. Symmetric Tree
    leetcode 191. Number of 1 Bits
    胜利的欲望不会给你胜利
  • 原文地址:https://www.cnblogs.com/webfpc/p/1571357.html
Copyright © 2011-2022 走看看