DB2通用数据库的并发性
2008-09-09 16:30:20 来源:WEB开发网在维护数据完整性的同时,提供多个应用程序同时访问数据的能力称作 并发性控制。
锁
锁是一种由 DB2 UDB 用于完成并发性控制的软件机制。锁实质上就是一个控制块,将 DB2 UDB 对象或资源与应用程序关联起来,并控制其他应用程序如何访问同一对象或资源。与 DB2 UDB 资源有关联的应用程序被称为“持有”或“拥有”该锁。
通过使用锁,DB2 UDB(管理该数据库)可以防止发生上述几类问题。DB2 UDB 与另一 MVS 地址空间 IRLM 配合管理这些锁。IRLM 将跟踪这些锁及其所有者,以确定应用程序请求的 DB2 UDB 资源是否可用于该类工作。资源可以是 锁定的或 共享的,这取决于当前资源上的锁的“持有者”所进行的处理类型,以及请求应用程序所预期的处理类型。
锁模式
最常用的两种锁模式是 共享的和 排他的。共享锁与只读操作有关联,这意味着持有该锁的应用程序可以读取数据,而其他应用程序也可以读取该数据。排他锁与写操作有关联,这意味着持有该锁的应用程序有资格更新数据,但在锁所有者完成更新(将修改提交给数据库)并释放该锁之前,其他应用程序无法使用该数据。
DB2 UDB 和 IRLM 使用其他类型和子类型的锁模式来实现锁定和并发性控制。您可以在 DB2 UDB Administration 手册中找到关于这点的更多详细描述。
锁定粒度
除了使用各种锁模式,DB2 UDB 还提供了不同的锁定级别,用以控制被锁定数据的范围。各种级别表示了 DB2 UDB 使用的锁定粒度,其范围可以从单个行到整个表空间。DB2 UDB 根据锁定粒度来使用不同的锁模式。
具有多种锁定级别的理由十分简单。某些应用程序可能要求有权读取或更新大范围的数据,而其他应用程序则可能只要求访问窄得多的范围。如果只能使用一种锁定级别,则会降低整个系统性能。例如,一下子锁定太多数据会强制其他应用程序进行不必要的等待。否则,DB2 UDB 可能使用过多的系统资源,尝试服务对附加数据资源进行锁定的附加请求。能够实现多种级别的锁粒度可以极大地提高并发性水平。
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››数据库对象——存储过程
- ››db2诊断系列之---定位锁等待问题
- ››数据库设计词汇对照表
- ››db2 命令选项解释
- ››数据库大型应用解决方案总结
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
更多精彩
赞助商链接