隔离级别
锁定在用作事务控制机制时,可以解决并发问题。虽然可以在任何时间运行多个事务,但锁定只允许所有事务独立运行,运行时相互完全隔离。在隔离级别,事务可以接受不一致的数据。提高隔离级别可以更有效地防止数据的不一致性,但缺点是降低并发处理能力。
在 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 中,应用程序需要的隔离级别决定了 SQL Server Compact Edition 所使用的锁定行为。
SQL Server Compact Edition 支持下列隔离级别(从最低到最高):
- 已提交读(SQL Server Compact Edition 默认设置)
- 可重复读
- 可串行读(事务之间相互完全隔离)
随着隔离级别的提高,可以更有效地防止数据的不一致性。但是,这将降低事务的并发处理能力,会影响多用户访问。
注意: |
---|
SQL Server Compact Edition 可以确保一个事务无法读取另一个事务的未提交数据(脏读)。实现此功能的方法是,通过使用页版本控制机制,允许用户读取数据,而不需要数据的 S 锁。这样,对于读 (SELECT) 操作,可以允许例外的并发处理。 |
隔离级别与并发问题
下表列出了隔离的级别以及各个级别可以解决的并发问题:
注意: |
---|
可能出现的并发问题包括未提交相关性、不一致分析以及幻读。有关并发问题的详细信息,请参阅并发。 |
隔离级别 | 未提交相关性(脏读) | 不一致分析(不可重复读) | 幻读 |
---|---|---|---|
已提交读 |
否 |
是 |
是 |
可重复读 |
否 |
否 |
是 |
可串行读 |
否 |
否 |
否 |
隔离级别可以通过编程方式进行设置,也可以通过使用 SQL 语法 SET TRANSACTION ISOLATION LEVEL 进行设置。有关详细信息,请参阅事务隔离级别。
请参阅
概念
事务 (SQL Server Compact Edition)
锁定 (SQL Server Compact Edition)
游标 (SQL Server Compact Edition)