对SQLSERVER2000隔离级别的认识
来源:互联网 发布:imagesloaded.js下载 编辑:程序博客网 时间:2024/06/16 15:33
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
可串行性是通过运行一组并发事务达到的状态,等同于这组事务按某种顺序连续执行时所达到的数据库状态。
SQL-92隔离级别
尽管可串行性对于事务确保数据库中的数据在所有时间内的正确性相当重要,然而许多事务并不总是要求完全的隔离。例如,多个作者工作于同一本书的不同章节。新章节可以在任意时候提交到项目中。但是,对于已经编辑过的章节,没有编辑人员的批准,作者不能对此章节进行任何更改。这样,尽管有未编辑的新章节,但编辑人员仍可以确保在任意时间该书籍项目的正确性。编辑人员可以查看以前编辑的章节以及最近提交的章节。
事务准备接受不一致数据的级别称为隔离级别。隔离级别是一个事务必须与其它事务进行隔离的程度。较低的隔离级别可以增加并发,但代价是降低数据的正确性。相反,较高的隔离级别可以确保数据的正确性,但可能对并发产生负面影响。应用程序要求的隔离级别确定了使用的锁定行为。
SQL-92定义了下列四种隔离级别,
SQLSERVER支持所有这些隔离级别:
未提交读(事务隔离的最低级别,仅可保证不读取物理损坏的数据)。
提交读(SQLSERVER默认级别)。
可重复读。
可串行读(事务隔离的最高级别,事务之间完全隔离)。
如果事务在可串行读隔离级别上运行,则可以保证任何并发重叠事务均是串行的。
下面四种隔离级别允许不同类型的行为。
隔离级别 脏读不可重复读取 幻像未提交读是是是提交读否是是可重复读否否是可串行读否否否
事务必须运行于可重复读或更高的隔离级别以防止丢失更新。当两个事务检索相同的行,然后基于原检索的值对行进行更新时,会发生丢失更新。如果两个事务使用一个UPDATE语句更新行,并且不基于以前检索的值进行更新,则在默认的提交读隔离级别不会发生丢失更新。
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
当锁定用作并发控制机制时,它可以解决并发问题。这使所有事务得以在彼此完全隔离的环境中运行,但是任何时候都可以有多个正在运行的事务。可串行性是通过运行一组并发事务达到的状态,等同于这组事务按某种顺序连续执行时所达到的数据库状态。
SQL-92隔离级别
尽管可串行性对于事务确保数据库中的数据在所有时间内的正确性相当重要,然而许多事务并不总是要求完全的隔离。例如,多个作者工作于同一本书的不同章节。新章节可以在任意时候提交到项目中。但是,对于已经编辑过的章节,没有编辑人员的批准,作者不能对此章节进行任何更改。这样,尽管有未编辑的新章节,但编辑人员仍可以确保在任意时间该书籍项目的正确性。编辑人员可以查看以前编辑的章节以及最近提交的章节。
事务准备接受不一致数据的级别称为隔离级别。隔离级别是一个事务必须与其它事务进行隔离的程度。较低的隔离级别可以增加并发,但代价是降低数据的正确性。相反,较高的隔离级别可以确保数据的正确性,但可能对并发产生负面影响。应用程序要求的隔离级别确定了使用的锁定行为。
SQL-92定义了下列四种隔离级别,
SQLSERVER支持所有这些隔离级别:
未提交读(事务隔离的最低级别,仅可保证不读取物理损坏的数据)。
提交读(SQLSERVER默认级别)。
可重复读。
可串行读(事务隔离的最高级别,事务之间完全隔离)。
如果事务在可串行读隔离级别上运行,则可以保证任何并发重叠事务均是串行的。
下面四种隔离级别允许不同类型的行为。
隔离级别 脏读不可重复读取 幻像未提交读是是是提交读否是是可重复读否否是可串行读否否否
事务必须运行于可重复读或更高的隔离级别以防止丢失更新。当两个事务检索相同的行,然后基于原检索的值对行进行更新时,会发生丢失更新。如果两个事务使用一个UPDATE语句更新行,并且不基于以前检索的值进行更新,则在默认的提交读隔离级别不会发生丢失更新。
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 对SQLSERVER2000隔离级别的认识
- 对SQL Server中read committed隔离级别的全新认识 S X锁
- 对不同隔离级别的理解
- SQLserver2000的理论认识
- 对SQL事务隔离级别的简单理解
- 面试篇之对数据库事务隔离级别的理解
- 浅析MySQL事务隔离级别对其性能的影响
- 对read committed隔离级别的全新认识:select语句能读取到,未来被其他事务修改过的数据???
- ORACLE的隔离级别
- C#的隔离级别
- ORACLE的隔离级别
- ORACLE的隔离级别
- ORACLE的隔离级别
- ORACLE的隔离级别
- orace的隔离级别
- 数据库的隔离级别
- 数据库的隔离级别
- 事物的隔离级别
- The DataSource with the JNDI name.txt
- 自动设置Identity属性的代码(PowerDesigner脚本)
- 多表连接中的各种连接的区别和联系
- 口令密码对照表
- hibernate查询语言
- 对SQLSERVER2000隔离级别的认识
- 如何理解hibernate的持久化
- sql-server日志文件总结及日志满的处理办法
- 在查询分析器中,通过SQLDMO来得到脚本
- 路由器配置命令详细列表(1)
- 生成表中的数据的脚本。
- HQL语句
- 在查询分析器中,用快捷键取得字段的列表。
- 编程语言层次