db2隔离级别-试验

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 07:29 点击:

准备工作 
db2命令行下,执行:list command options,如图: 
 

注意,Auto Commit缺省是ON,即自动提交。使用下面的命令来查看设置: 

执行命令: 
update command options using c off, 

再执行命令:list command options,如图: 
 

这时可以看到Auto Commit 已经变为OFF了 

DB2使用一个叫做“CURRENT ISOLATION”的special register来记录session的隔离级别。查看当前隔离级别有两种方法: 

VALUES CURRENT ISOLATION 
 
SELECT CURRENT ISOLATION FROM SYSIBM.SYSDUMMY1 

设置隔离级别命令如下(此命令不需要显式COMMIT): 

SET CURRENT ISOLATION TO UR/CS/RS/RR 

由于该测试需要并发事务,所以我们要用同样方法,再打开一个窗口。以下称为session1和session2。 

把两个session都连接到DINGTEST数据库,并建一张表TA如下: 

AC1 AC2 
1    1 
2    2 
3    3 
4    4 
5    5 


至此准备工作完成,我们开始实验。 

注:每次实验完以后别忘记清理环境,即把session commit/rollback。 

实验1 
测试在“UR”隔离级别下是否会产生“丢失更新”的问题。 

方法:两个session并发更新同一条记录。 
STEP 0:把session1和session2都设置为UR隔离级别: 
SET CURRENT ISOLATION TO UR 

STEP 1:在session1中做更新操作,但不提交: 
UPDATE TA SET AC2 = 2 WHERE AC1 = 1 

STEP 2:在session2中对同一条记录做更新操作:

    相关新闻>>

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • db2管理工具小结
    • DB2数据库的导出与导入(Windows客户端)
    • db2 CLP中如何换行
    • DB2查看表结构及所用表语句
    • DB2 · CREATE TABLESPACE
    • 使用DB2对象:创建模式、表和视图
    • DB2数据库逻辑卷的复制
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1