IBM Informix Dynamic Server に関する豆知識
- 作者: Eric Herber
- 出版社/メーカー: Software + Support
- 発売日: 2008/12
- メディア: Perfect
- この商品を含むブログ (1件) を見る
partnum 値を 10 進変換して DBSPACE 番号と照合しようとすると
以下のような問題がある。
- 問題点
partnum 値を 10 進変換して 7 桁以上の部分をDBSPACE番号として
照らし合わせるとDBSPACE番号21以上で値がずれていってしまう。
partnum partnumの partnumの 10進表記 10進表記/1048576 ============= ============= ============= 0x1400007 20971527 20.00000668 0x1400008 20971528 20.00000763 0x1400009 20971529 20.00000858 ※以降ずれていってしまう。 0x1500001 22020097 21.00000095 0x1500002 22020098 21.00000191 0x1500003 22020099 21.00000286 0x1500004 22020100 21.00000381
正確なpartnumの値から、DBSPACE番号を照合する方法を以下に示す。
- 照合方法
(Step:1) partnum の値( 16 進数)を 10 進数に変換する。 (Step:2) 1048576 で除算した値を整数に丸める。 (Step:3) DBSPACE の番号と照合する。 ※ partinum の 16 進数表記の値の 頭 2 桁を 10 進数表記に変換することと同義。
- 以下、計算例
% onstat -g ppf IBM Informix Dynamic Server Version 10.00.FC5W5 -- On-Line -- Up 9 days 03:24:16 -- 649216 Kbytes Partition profiles partnum lkrqs lkwts dlks touts isrd iswrt isrwt isdel bfrd bfwrt seqsc rhitratio 0xa 0 0 0 0 9041 0 0 0 18 0 0 67 ... 0x2100001 0 0 0 0 0 0 0 0 0 0 0 0 0x2100002 32307 0 0 0 11234 0 50 0 27150 50 109 100 0x2100003 603 0 0 0 431 0 53 0 1167 53 0 98 0x2100004 352 0 0 0 54 0 53 0 527 53 0 98 ...
-
- 上記、partnum 0x2100001 の場合に対応する DBSPACE を調べる
- (Step:1) 10 進数に変換する
- 上記、partnum 0x2100001 の場合に対応する DBSPACE を調べる
0x2100001 -> 34603009
-
-
- (Step:2) 1048576 で除算、整数に丸める
-
34603009 -> 33.00000095 -> 33
-
-
- (Step:3) (Step:2) で得た値をDBSPACE番号と照合する
-
% onstat -d IBM Informix Dynamic Server Version 10.00.FC5W5 -- On-Line -- Up 9 days 03:48:58 -- 649216 Kbytes Dbspaces address number flags fchunk nchunks pgsize flags owner name 12b9b3e78 1 0x60001 1 1 2048 N B informix rootdbs 12cedf848 2 0x42001 2 1 2048 N TB informix tmpdbs01 ... 12cee4b50 33 0x60001 50 1 2048 N B informix cdrdbs <== 12cee4ce8 34 0x68001 51 2 2048 N SB informix cdrsbs 34 active, 2047 maximum "partnum: 0x2100001" は "dbspace: cdrdbs" となる