WEB开发网
开发学院数据库DB2 分析 DB2 for Linux, UNIX, and Windows 中的锁等... 阅读

分析 DB2 for Linux, UNIX, and Windows 中的锁等待情形

 2008-10-07 16:16:32 来源:WEB开发网   
核心提示: 锁等待分析场景接下来,我们开始使用前面介绍的 db2pd 选项来分析一个示例锁等待情形,分析 DB2 for Linux, UNIX, and Windows 中的锁等待情形(2),为此,我们创建 DB2 SAMPLE 数据库:清单 2. 创建 SAMPLE 数据库db2sampl用户 A

锁等待分析场景

接下来,我们开始使用前面介绍的 db2pd 选项来分析一个示例锁等待情形。为此,我们创建 DB2 SAMPLE 数据库:

清单 2. 创建 SAMPLE 数据库

db2sampl

用户 A 执行事务 A,以根据每个经理的薪水为他们提供 10% 的奖金:

清单 3. 事务 A 执行的更新操作

UPDATE EMPLOYEE
SET BONUS = SALARY * 0.1
WHERE JOB = 'MANAGER'

当事务 A 仍然在运行(因为用户 A 还没有使用 COMMIT 或 ROLLBACK 终止该事务)时,用户 B 执行事务 B,以将每个雇员的薪水提高 2%:

清单 4. 事务 B 执行的更新操作

UPDATE EMPLOYEE
SET SALARY = SALARY * 0.02

由于事务 B 没有完成,用户 B 请求 DBA 确定问题的原因。于是,DBA 调用 db2pd,看是否存在锁等待情形:

清单 5. 检查锁等待情形

db2pd -db sample -locks wait showlocks
Database Partition 0 -- Database SAMPLE -- Active -- Up 3 days 08:33:05
Locks:
Address  TranHdl  Lockname          Type    Mode Sts Owner   Dur
0x050A0240 6     02000600050040010000000052 Row    ..X W  2     1 
0x050A0DB0 2     02000600050040010000000052 Row    ..X G  2     1 
HoldCount Att ReleaseFlg
0     0x00 0x40000000  TbspaceID 2 TableID 6 PartitionID 0 Page 320 Slot 5
0     0x00 0x40000000  TbspaceID 2 TableID 6 PartitionID 0 Page 320 Slot 5

db2pd 报告 ID 为 2 的表空间中一个 ID 为 6 的表上有一个行锁存在锁等待情形。通过检查 SYSCAT.TABLES,DBA 断定表 EMPLOYEE 上的确存在锁等待。

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

Tags:分析 DB for

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