用db2pd工具分析DB2forLinux,UNIX,andWindows中锁的等
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用db2pd工具分析DB2forLinux,UNIX,andWindows中锁的等,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3480字,纯文字阅读大概需要5分钟。
内容图文
当多个 DB2? 用户并发地访问一个数据库时,锁等待会导致响应变慢。锁等待是临时性的,因而难以捕捉。然而,当出现锁等待情形时,需要由数据库管理员负责确定锁等待的原因。本文通过例子演示如何使用用于 DB2 for Linux?, UNIX?, and Windows? 的 db2pd 和 db
当多个 DB2? 用户并发地访问一个数据库时,锁等待会导致响应变慢。锁等待是临时性的,因而难以捕捉。然而,当出现锁等待情形时,需要由数据库管理员负责确定锁等待的原因。本文通过例子演示如何使用用于 DB2 for Linux?, UNIX?, and Windows? 的db2pd
和db2pdcfg
实用程序完成该任务。
用于锁监视的 db2pd
选项
db2pd
是用于监视各种 DB2 数据库活动以及故障排除的实用程序。它是从 DB2 V8.2 开始随 DB2
引擎发布的一个独立的实用程序,其外观和功能类似于 Informix onstat
实用程序。db2pd
是从命令行以一种可选的交互模式执行的。该实用程序运行得非常快,因为它不需要获取任何锁,并且在引擎资源以外运行(这意味着它甚至能在一个挂起的引擎上工作)。通过快照监视还可以收集
db2pd
提供的很多监视器数据,但是 db2pd
和快照监视的输出格式却有很大不同。这使 DBA
可以选择更符合用户需求的监视替代方法。本文关注用于锁监视的 db2pd
选项。有一篇由 Sam Poon 撰写的
developerWorks 文章(参见 参考资料 小节)对
db2pd
的监视功能作了更广泛的介绍。
下面的图展示了用于锁监视的 db2pd
选项:
图 1. 用于锁监视的
db2pd
选项TranHdl
:用于指定事务句柄,以便只监视由特定事务持有的锁。showlocks
:这个子选项将锁名称扩展成有意义的解释。对于一个行锁,该选项显示以下信息:表空间 ID、表 ID、分区 ID、页和槽。通过使用编目视图SYSCAT.TABLES
上的一个查询,很容易将表空间 ID 和表 ID 映射到相应的表名:
清单 1. 将表空间 ID、表 ID 映射到表模式、表名
SELECT TABSCHEMA, TABNAME
FROM SYSCAT.TABLES
WHERE TBSPACEID = tbspaceid AND TABLEID = tableid
wait
:如果指定wait
子选项,则db2pd
只显示事务当前正在等待的锁,以及对等待情形负责的锁。这个子选项大大简化了锁等待分析,因为它将输出限制为参与锁等待情形的锁。db2pd database
和file
选项不是特定于锁监视的,但是适用于(几乎)所有db2pd
调用。database
选项将db2pd
返回的监视器数据限制为某个数据库的监视器数据。而file
选项则允许定义一个文件,以便将db2pd
输出写到该文件。
锁等待分析场景
接下来,我们开始使用前面介绍的 db2pd
选项来分析一个示例锁等待情形。为此,我们创建 DB2
SAMPLE
数据库:
清单 2. 创建
SAMPLE
数据库
|
用户 A 执行事务 A,以根据每个经理的薪水为他们提供 10% 的奖金:
清单 3. 事务 A 执行的更新操作
|
当事务 A 仍然在运行(因为用户 A 还没有使用 COMMIT
或 ROLLBACK
终止该事务)时,用户 B 执行事务 B,以将每个雇员的薪水提高 2%:
清单 4. 事务 B 执行的更新操作
|
由于事务 B 没有完成,用户 B 请求 DBA 确定问题的原因。于是,DBA 调用
db2pd
,看是否存在锁等待情形:
清单 5. 检查锁等待情形
|
db2pd
报告 ID 为 2 的表空间中一个 ID 为 6 的表上有一个行锁存在锁等待情形。通过检查
SYSCAT.TABLES
,DBA 断定表 EMPLOYEE
上的确存在锁等待。
清单 6. 确定锁等待情形所涉及的表
请点击此处查看全文
内容总结
以上是互联网集市为您收集整理的用db2pd工具分析DB2forLinux,UNIX,andWindows中锁的等全部内容,希望文章能够帮你解决用db2pd工具分析DB2forLinux,UNIX,andWindows中锁的等所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。