让数据库飞起来 10大DB2优化技巧.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
为了帮助 DB2 DBA 避免性能灾难并获得高性能,我为我们的客户、用户和 DB2 专家同行总结了一套故障诊断流程。以下详细说明在 Unix、Windows 和 OS/2 环境下使用 DB2 UDB 的电子商务 OLTP 应用程序的 10 条最重要的性能改善技巧 - 并在本文的结束部分作出总结。   10. 监视开关   确保已经打开监视开关。如果它们没有打开,您将无法获取您需要的性能信息。要打开该监视开关,请发出以下命令:   1 db2 update monitor switches using2 lock ON sort ON bufferpool ON uow ON3 table ON statement ON   9. 代理程序   确保有足够的 DB2 代理程序来处理工作负载。要找出代理程序的信息,请发出命令:   1 db2 get snapshot for database manager    并查找以下行:1 High water mark for agents registered = 72 High water mark for agents waiting for a token = 03 Agents registered= 74 Agents waiting for a token= 05 Idle agents= 56 Agents assigned from pool= 1587 Agents created from empty Pool = 78 Agents stolen from another application= 09 High water mark for coordinating agents= 710 Max agents overflow= 0  如果您发现Agents waiting for a token或Agents stolen from another application不为 0,那么请增加对数据库管理器可用的代理程序数(MAXAGENTS 和/或 MAX_COORDAGENTS取适用者)。   8. 最大打开的文件数   DB2 在操作系统资源的约束下尽量做一个优秀公民。它的一个优秀公民的行动就是给在任何时刻打开文件的最大数设置一个上限。数据库配置参数 MAXFILOP约束 DB2 能够同时打开的文件最大数量。当打开的文件数达到此数量时,DB2 将开始不断地关闭和打开它的表空间文件(包括裸设备)。不断地打开和关闭文件减缓了 SQL 响应时间并耗费了 CPU 周期。要查明 DB2 是否正在关闭文件,请发出以下命令:   1 db2 get snapshot for database on DBNAME    并查找以下的行:   1 Database files closed = 0  如果上述参数的值不为 0,那么增加MAXFILOP的值直到不断打开和关闭文件的状态停埂。   1 db2 update db cfg for DBNAME using MAXFILOP N   7. 锁   LOCKTIMEOUT的缺省值是 -1,这意味着将没有锁超时(对 OLTP 应用程序,这种情况可能会是灾难性的)。尽管如此,我还是经常发现许多 DB2 用户用LOCKTIMEOUT= -1。将LOCKTIMEOUT设置为很短的时间值,例如 10 或 15 秒。在锁上等待过长时间会在锁上产生雪崩效应。   首先,用以下命令检查LOCKTIMEOUT的值:   1 db2 get db cfg for DBNAME    并查找包含以下文本的行:   1 Lock timeout (sec) (LOCKTIMEOUT) = -1  如果值是 -1,考虑使用以下命令将它更改为 15 秒(一定要首先询问应用程序开发者或您的供应商以确保应用程序能够处理锁超时):   1 db2 update db cfg for DBNAME using LOCKTIMEOUT 15  您同时应该监视锁等待的数量、锁等待时间和正在使用锁列表内存(lock list memory)的量。请发出以下命令:   1 db2 get snapshot for database on DBNAME  查找以下行:   1 Locks held currently= 02 Lock waits= 03 Time database waited on locks (ms)= 04 Lock list memory in use (Bytes)= 5765 Deadlocks detected= 06 Lock escalations= 07 Exclusive lock escalations= 08 Age

文档评论(0)

白领文档(原创) + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档