互联网服务

根据page,slot号查找某一记录的方法

根据page,slot号查找某一记录的方法

如:page  6528 ,slot:12  ,v9.5版本中,如何查询出该记录所对应的具体内容??

有哪些方法?
参与11

10同行回答

ppjava2009ppjava2009系统工程师用友汽车信息科技(上海)有限公司
楼主这个问题挺好的,可以通过锁的监控查出当前持有或等待的锁的对应用的记录情况,光知道表及页、槽等信息还是比较抽象的。显示全部
楼主这个问题挺好的,可以通过锁的监控查出当前持有或等待的锁的对应用的记录情况,光知道表及页、槽等信息还是比较抽象的。收起
互联网服务 · 2014-03-14
浏览825
ppjava2009ppjava2009系统工程师用友汽车信息科技(上海)有限公司
回复  junli0411 谢谢,明白了,再请教一个问题,那为什么不同表的起始rid不一样呢?例如下面:[db2inst1 ...iwaich 发表于 2013-6-3 15:00 两张表的数据是不能共页存储的,行可以共页,但表不行。...显示全部
回复  junli0411

谢谢,明白了,再请教一个问题,那为什么不同表的起始rid不一样呢?例如下面:[db2inst1 ...
iwaich 发表于 2013-6-3 15:00

两张表的数据是不能共页存储的,行可以共页,但表不行。收起
互联网服务 · 2014-03-14
浏览799
iwaichiwaich软件开发工程师IBM
回复 8# junli0411 谢谢,明白了,再请教一个问题,那为什么不同表的起始rid不一样呢?例如下面:[db2inst1@win ~]$ db2 "select rid(t1112) from t1112"1                   --------------------   &nbs...显示全部
回复 8# junli0411

谢谢,明白了,再请教一个问题,那为什么不同表的起始rid不一样呢?例如下面:[db2inst1@win ~]$ db2 "select rid(t1112) from t1112"

1                  
--------------------
                   4
                   5
                   6
                   7

  4 record(s) selected.

[db2inst1@win ~]$ db2 "select rid(t3) from t3"

1                  
--------------------
               65537
               65538
               65539
               65540
               65543
               65541
               65542
               65544
               65545

  9 record(s) selected.

这两个都是随便创的两个小表,第一个应该是在第0页 的第4个slot开始。   0*65536+4
那下面这个表为什么第0页没有使用。 1*65536+1收起
互联网服务 · 2013-06-03
浏览903
junli0411junli0411数据库管理员NULL
回复 5# iwaich     rid是一个表中唯一标识一条记录的。显示全部
回复 5# iwaich


    rid是一个表中唯一标识一条记录的。收起
互联网服务 · 2013-06-03
浏览826
junli0411junli0411数据库管理员NULL
回复 6# amormiosl 65536 是2的16次方 , 因为在large tablespace 的slot号使用2个Byte表示regular 的要乘以256 ,  2的8次方 ,regular tablespace的slot使用1个Byte表示显示全部
回复 6# amormiosl


65536 是2的16次方 , 因为在large tablespace 的slot号使用2个Byte表示

regular 的要乘以256 ,  2的8次方 ,regular tablespace的slot使用1个Byte表示收起
互联网服务 · 2013-06-03
浏览816
amormioslamormiosl系统工程师DC
DB2 V9.5, 表空间默认是large的,所以,计算方法为rowid=6528×65536+12=427819020    根据表和rowid可以 ...junli0411 发表于 2013-5-28 23:43     为什么要乘以65536呢?   如果是regular的表空间,那应该乘以多少呢?...显示全部
DB2 V9.5, 表空间默认是large的,所以,计算方法为rowid=6528×65536+12=427819020
    根据表和rowid可以 ...
junli0411 发表于 2013-5-28 23:43



    为什么要乘以65536呢?
   如果是regular的表空间,那应该乘以多少呢?收起
系统集成 · 2013-05-30
浏览904
iwaichiwaich软件开发工程师IBM
DB2 V9.5, 表空间默认是large的,所以,计算方法为rowid=6528×65536+12=427819020    根据表和rowid可以 ...junli0411 发表于 2013-5-28 23:43 [db2inst1@win db2move]$ db2 "select rid(t3) from t3"1            &nb...显示全部
DB2 V9.5, 表空间默认是large的,所以,计算方法为rowid=6528×65536+12=427819020
    根据表和rowid可以 ...
junli0411 发表于 2013-5-28 23:43


[db2inst1@win db2move]$ db2 "select rid(t3) from t3"

1                  
--------------------
               65537
               65538
               65539
               65540
               65543
               65541
               65542

  7 record(s) selected.

[db2inst1@win db2move]$ db2 "select rid(t1) from t1"

1                  
--------------------
               65536
               65537
               65538
               65540
               65541
               65542
               65543
               65544
               65545
               65539

  10 record(s) selected.

  您看,我这两个表的值rid值有重合,这里rid是不是只是指在记录在页中的槽号呀,不太请楚。收起
互联网服务 · 2013-05-30
浏览922
junli0411junli0411数据库管理员NULL
DB2 V9.5, 表空间默认是large的,所以,计算方法为rowid=6528×65536+12=427819020    根据表和rowid可以直接找到这条记录:    db2 "select * from tabname where rid(tabname)= 427819020 with ur"  可以得到相应的记录...显示全部
DB2 V9.5, 表空间默认是large的,所以,计算方法为rowid=6528×65536+12=427819020
    根据表和rowid可以直接找到这条记录:
    db2 "select * from tabname where rid(tabname)= 427819020 with ur"
  可以得到相应的记录收起
互联网服务 · 2013-05-28
浏览818
fengshfengsh系统工程师电信行业
要用db2dart显示全部
要用db2dart收起
系统集成 · 2013-05-20
浏览919
zhendazhenda数据库管理员昆仑银行
请问,问这个问题的原因是什么?显示全部
请问,问这个问题的原因是什么?收起
软件开发 · 2013-05-19
浏览858

提问者

taian_8011
软件开发工程师ibm

问题状态

  • 发布时间:2013-05-19
  • 关注会员:1 人
  • 问题浏览:4919
  • 最近回答:2014-03-14
  • X社区推广