热门关键字:  ubuntu  分区  Fedora  linux系统进程  函数

DB2为单个会话锁定技巧

来源: 作者: 时间:2007-09-09 Tag: 点击:
  DB2从版本8.2开始,客户可以为每一个DB2会话指定锁定策略。在以前的版本中,只能通过配置数据库配置参数LOCKTIMEOUT配置一个应用程序如果不能获得锁,等待多长时间将回滚该事务。

  单个会话现在可以指定锁定等待方式策略,该策略在会话需要的锁定不能立即获取时使用。该策略指示会话是否将采取如下措施:

  在不能获取锁定时返回 SQLCODE 和 SQLSTATE

  无限等待锁定

  等待为锁定指定的时间

  等待锁定时使用 locktimeout 数据库配置参数的值

  锁定等待方式策略通过新的 SET CURRENT LOCK TIMEOUT 语句指定,此语句更改 CURRENT LOCK TIMEOUT 专用寄存器的值。CURRENT LOCK TIMEOUT 专用寄存器指定在返回指示不能获取锁定的错误之前等待锁定的秒数。

  虽然 locktimeout 参数的值适用于所有锁定,但是此新功能只影响以下锁定类型:行、表、索引键和多维群集(MDC)块锁定。

  该语句的语法如下:

  .-CURRENT-. .-=-.

  >>-SET--+---------+--LOCK TIMEOUT--+---+------------>

  >--+-WAIT-----------------------+------------><

  +-NOT WAIT-------------------+

  +-NULL-----------------------+

  | .-WAIT-. |

  +-+------+-- integer-constant -+

  '- host-variable --------------'

  关于该命令的详细说明,请参见:http://publib.boulder.ibm.com/infocenter/db2help/topic

  /com.ibm.db2.udb.doc/admin/r0011874.htm?resultof=

  %22%73%65%74%22%20%22%63%75%72%72%65%6e%74%22%2

  0%22%6c%6f%63%6b%22%20%22%74%69%6d%65%6f%75%74%22%20

  下面通过一个例子来讲解如何使用这个功能(我们使用SAMPLE数据库):

  1、使用"db2 +c"打开两个DB2会话。(+c 参数关闭AUTOCOMMIT)

  2、在一个会话中执行下面的语句:

  connect to sample

  create table test(id int,name char(10))

  commit

  insert into test values(1,'test')

  3、在另一个会话中执行下面的语句:

  connect to sample

  select * from test

  由于默认LOCKTIMEOUT参数设置为-1,所以这个会话会一直等着,没有结果返回。如下图所示:

  



相关文章:
db2日期操作函数
SQL 语法参考手册
谈谈IBM DB2的数据库备份与恢复
对 DB2 V9 中 XML 类型的编码处理(dW)
构建DB2 Cube View元数据桥
DB2存储过程开发最佳实践
DB2中使用所有内存
DB2与SQL Server2000间SQL数据复制
用户和组帐户与DB2 UDB的交互
DB2 9数据库优点及缺点详细分析
DB2中实现Oracle的相关功能
将Siebel 7电子商务应用程序从DB2 UDB V8 迁移到D
解析:DB2 无限活动日志策略的实用技巧
DB2 9数据服务器发展的3个阶段
为DB2数据库添加验证约束
DB2数据库创建存储过程时遇到的错误
DB2 9数据库性能理解的二十大误区
DB2中的终极SQL性能调节技术
DB2数据库应用系统性能优化深入探究
提高DB2 Web程序性能5条规则
详解安装DB2 9数据库管理软件的4种方式
DB2 9.5的数据库内存保护技术
解决DB2中出现的SQL1032N错误现象
创建克隆文件
DB2数据库优化的几条策略
如何解决DB2中出现的SQL1032N错误现象
解决DB2数据库代码页不兼容的问题
DB2创建存储过程时遇到的错误
教你提高商业智能环境中的DB2查询性能
DB2 9.5的数据库内存保护