发生死锁了怎么办.doc:..发生死锁了怎么办?在新的数据库应用系统上线初期,由于测试不完善或不熟悉DB2的机制,常会出现锁等待死锁等现象存在于我们的应用系统中,如何捕获锁等待或死锁信息并解决锁问题,是保证平稳上线必须面对的问题。目前应用系统最常使用的DB2数据库版本有多个,有&1,,,对于不同版本的DB2数据库提供的解决办法不尽相同,下而对于上述问题的解决作了一个简单说明,希望对大家有用。:DB2_EVALUNC0MMITTED=on当启用此变量时,在可能的情况下,它将进行表或索引访问扫描以延迟或避免行锁定,直到知道数据记录满足谓词求值为止。DB2_SKIPDELETED=on当启用此变量时,在可能的情况下,它允许使用无条件地跳过已删除的键或跳过已删除的行。DB2_SKIPINSERTED=on当启用此变量时,在可能的情况下,它允许跳过未落实的已插入行,就好像从未插入这些行一样。数据库参数:LOCKLIST锁定列表的内存量,当此参数设置为AUTOMATIC吋,就启用了自调整功能。这允许内存调整器根据工作负载需求变化动态地调整此参数控制的内存区大小。如果不是自动,需要设置相对大一些;DB2默认是行锁,每个行锁大约占64或128个字节(64位数据库),计算锁定列表内存的大小公式是:(每个应用程序的平均锁定数目的估计值*每个锁定所需的字节数(128或64)*maxapp1s(ts)/4096)*120%,这里只是建议公式,实际情况还要视操作系统实际的内存量来定。MAXLOCKS升级前锁定列表的最大百分比,默认是22%(windows)或10%(unix),可以根据要求自行改动,计算公式是2*100/maxappIsDLCHKTIME死锁检测时间间隔,默认是10000毫秒(10秒),可以根据要求自行改动,也可不动。增大此参数以降低检查死锁的频率,因此增加应用程序必须等待消除死锁的时间。减小此参数会增大检查死锁的频率,从而减少应用程序必须等待死锁解决的时间,但是会增加数据库管理器检查死锁所花的时间。LOCKTIMEOUT锁等待时间,默认是-1,也就是永远等待,请改成固定的值,在事务处理(OLTP)环境中,可以使用30秒的初始启动值。在一个只查询的环境中,您可以从一个较高的值开始。LOGFILSIZtl志文件大小,此参数定义每个主日志文件和辅助日志文件的大小。如果数据库要运行大量更新、删除或插入事务,而这将导致日志文件很快变满,则应增大口志文件,了解您的并发应用程序的日志记录需求,來确定一个不会分配过量而浪费空间的日志文件大小。LOGPRIMARY主日志文件数,了解您的并发应用程序的日志记录需求,适当增大日志文件数。注意:在更新参数吋,需要注意有些参数在更改后需要重新启动数据库DB2实例才可以生效;有些参数需要断开当前所有的应用程序,重新链接才能生效;有些参数可以立即生效,使用者请参考相关文档,注意参数生效特性。
发生死锁了怎么办 来自淘豆网m.daumloan.com转载请标明出处.