教你快速掌握Oracle SQL到DB2 SQL的移植 ―

按照以上字段 pkID 是主键,unID1 是唯一健索引,unID2 是普通健索引,TSID 是普通字段,没有在上建立索引。

试验的结论:

PK_INDEX UNIQ_INDEX NormalINDEX NO_INDEX 
WITH RR 锁行,不锁表 锁行,不锁表 不锁行,不锁表(1) 锁行,锁表 
WITH RS 锁行,不锁表 锁行,不锁表 锁行,不锁表 锁行,锁表(2)  

锁行是指在一个事务中用某种方式读取并更改了改行数据并显示得指明要修改后,这个事务将锁住改行,直到它提交或者回滚了事务后,才释放该锁。

锁表是指在用以上各种SQL在读取并更改一行的同时锁住了整个表。

对以上红字部分(1)可能有不能理解的是:为什么对普通索引和主键或者唯一健索引的不同结论? 

对PK和UNIQ的解释是因为RR 是可重复的读的级别,对这次检索扫描到的有可能成为自己的潜在检索对象的内容都会锁住,而因为是主键或者唯一健,别的行不可能成为这次这个检索的潜在读的范围,就是对别的数据此事务根本就没有必要锁,任何情况的更改都不可能出现幻读的情况(此表上的约束限制),所以只锁这一行。这么理解对PK,UNIQ没有问题。

但是NormalINDEX 我认为应该是锁住这个表而不是不锁。这点一直没想明白。留待以后再加强理解。

对RS隔离级别是“锁定检索到的数据行”,是通过SQL检索到的结果进行锁定, PK,UNIQ,INDEX的结论完全都可以理解。 对 tableScan的检索而出现的锁表有些象RR隔离级别的所为。

详细过程:select * From TTT where ****= ? for update with RR(RS),这里的 ***并不是随便定义的。

隔离级别分为RR/RS/CS/UR四个级别:

1.RR隔离级别: 在此隔离级别下, DB2会锁住所有相关的纪录。 在一个SQL语句执行期间, 所有执行此语句扫描过的纪录都会被加上相应的锁。 具体的锁的类型还是由操作的类型来决定, 如果是读取,则加共享锁; 如果是更新, 则加独占锁。 由于会锁定所有为获得SQL语句的结果而扫描的纪录, 所以锁的数量可能会很庞大, 这个时候, 索引的增加可能会对SQL语句的执行有很大的影响,因为索引会影响SQL语句扫描的纪录数量。

2.RS隔离级别: 此隔离级别的要求比RR隔离级别稍弱,此隔离级别下会锁定所有符合条件的纪录。 不论是读取, 还是更新, 如果SQL语句中包含查询条件, 则会对所有符合条件的纪录加相应的锁。 如果没有条件语句, 也就是对表中的所有记录进行处理,则会对所有的纪录加锁。

3.CS隔离级别: 此隔离级别仅锁住当前处理的纪录。

4.UR隔离级别:此隔离级别下,如果是读取操作,不会出现任何的行级锁。对于非只读的操作,它的锁处理和CS相同。

DB2默认的隔离级别是CS。即游标稳定性。

DB2分页查询:

SELECT * FROM (Select 字段1,字段2,字段3,rownumber() 
over(ORDER BY 排序用的列名 ASC) AS rn from 表名) 
AS a1 WHERE a1.rn BETWEEN 10 AND 20 
SELECT * FROM (Select T.*,rownumber() 
over(ORDER BY T.ID ASC) AS rn from 
ADMINISTRATOR.TEST_BY_HUFENG T) AS a1 
WHERE a1.rn BETWEEN 1 AND 3  

(责任编辑:卢兆林)

<<上一页 1 2 3 4 数据挖掘交友

数据挖掘交友

Create By Any-Extract(WL-AE) 数据挖掘研究院

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:教你快速掌握Oracle SQL到DB2 SQL的移植 ―
下一篇:IBM DB2前世今生之DB2的诞生
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • Windows Communication Foundation - Part
  • Industry Leaders Line Up Behind Informat
  • IBM DB2 日常维护汇总(八)
  • DB2 Data Warehouse Edition V9.1 overview
  • DB2编程序技巧 (二)
  • IBM DB2前世今生之DB2的诞生
  • IBM DB2 日常维护汇总(二)
  • DB2编程序技巧 (十)
  • DB2的数据同步经验总结
  • DB2编程序技巧 (六)
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • IBM DB2前世今生之DB2的诞生
  • Modernizing the Mainframe Through SOA: T
  • Industry Leaders Line Up Behind Informat
  • DB2编程序技巧 (七)
  • DB2编程序技巧 (九)
  • DB2编程序技巧 (一)
  • DB2编程序技巧 (十)
  • DB2编程序技巧 (六)
  • DB2编程序技巧 (八)
  • DB2编程序技巧 (三)
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静