WEB开发网
开发学院数据库MSSQL Server 数据库访问中的锁定策略 阅读

数据库访问中的锁定策略

 2009-10-21 00:00:00 来源:WEB开发网   
核心提示: UserbeginsbyaskingforavailableresourcesBeginreadtransaction:SystemsearchesforresourceavailabilityEndreadtransactionSystemmayuserulestoprioritizeposs

User begins by asking for available resources 
Begin read transaction: 
 System searches for resource availability 
End read transaction 
System may use rules to prioritize possible options 
System presents options to user 
User makes a selection 
Begin Update transaction: 
 Validate that selected resources are still available 
 Lock all resources using read for update (pessimistic locking) either on the item to 
 updated, or on a related namespace lock in a locking table for new inserts 
 If any failures, rollback transaction and return to user to make a new selection 
 Otherwise update all resources 
End Update transaction (Commit) 

隔离级别

JDBC 定义了以下四种隔离级别:

TRANSACTION_SERIALIZABLE

在 DB2 中称为 Repeatable Read,是最强的隔离级别。数据库表中受当前事务影响的所有行都将被锁定,其他事务不能插入、删除或更新,以确保相同的查询能返回完全相同的结果。(但其他事务可读取锁定行)。所有被引用行(不仅是被检索行)都将被锁定,由于存在大量数据行被锁定的可能性,因此也存在较大的锁升级为完全的表级锁的可能性。在某些数据管理系统中,优化工具可以根据可能出现的锁升级要求来立即对某个表加锁。在此隔离级别中不允许出现幻象行,也不允许未提交读取。

TRANSACTION_REPEATABLE_READ

在 DB2 中称为 Read Stability。在此隔离级别中可以出现幻象行,但只有那些满足预定义条件的数据行才会被锁定。但是,这些行被确保能在工作单元期间保持稳定,只有在提交之后,才会解除锁定。在此隔离级别上,其他工作单元创建的未提交行不可见。

上一页  2 3 4 5 6 7 8  下一页

Tags:数据库 访问 锁定

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接