©日本IBMシステムズ・エンジニアリング(株) Information Management部 145
複数レンジサポート
条件が複数の範囲でも区分の限定可能
2001 1-3 SALES
表
2001 4-6
2001 7-9
2002 1-3
2002 7-9 2001
10-12
2002 4-6
2002 10-12
表スペース1 表スペース2 表スペース3 表スペース4
データ・
パーティション SELECT * FROM SALES
WHERE ( year = 2001 AND month < 3 ) OR (year = 2002 and month >= 10)
CREATE TABLE sales(year INT, month INT) PARTITION BY RANGE(year, month) (STARTING FROM(2001,1) ENDING AT(2001,3) IN ts1, ENDING AT(2001,6) IN ts2, ENDING AT(2001,9) IN ts3, ENDING AT(2001,12) IN TS4, ENDING AT(2002,3) IN TS5, ENDING AT(2002,6) IN TS6, ENDING AT(2002,9) IN ts7, ENDING AT(2002,12) IN ts8)
Access Table Name = V9ICHI.SALES ID = -6,-32767
| #Columns = 2
| Data-Partitioned Table
| Data Partition Elimination Info:
| | Range 1:
| | | #Key Columns = 2
| | | | Start Key: Inclusive Value
| | | | | 1: 2002
| | | | | 2: 10
| | | | Stop Key: Inclusive Value
| | | | | 1: 2002
| | Range 2:
| | | #Key Columns = 2
| | | | Start Key: Inclusive Value
| | | | | 1: 2001
| | | | Stop Key: Exclusive Value
| | | | | 1: 2001
| | | | | 2: 3
| Active Data Partitions: 0, 7
| Relation Scan
| | Prefetch: Eligible
| Lock Intents
| | Table: Intent Share
| | Row : Next Key Share
| Sargable Predicate(s)
| | #Predicates = 4
| | Return Data to Application
| | | #Columns = 2 Return Data Completion
複数レンジサポート
ア ク セ ス レ ン ジ 1
ア ク
セ ス
レ ン
ジ 2
©日本IBMシステムズ・エンジニアリング(株) Information Management部 147
パラメーター・マーカーを使ったケース
Access Table Name = V9ICHI.CUSTLIST ID = -6,-32768
| #Columns = 3
| Data-Partitioned Table
| Data Partition Elimination Info:
| | Range 1:
| | | #Key Columns = 1
| | | | Start Key: Inclusive Value
| | | | | 1: ?
| | | | Stop Key: Inclusive Value
| | | | | 1: ?
| Data partition elimination not performed yet
| Relation Scan
| | Prefetch: Eligible
| Lock Intents
| | Table: Intent Share
| | Row : Next Key Share
| Sargable Predicate(s)
| | #Predicates = 2
| | Return Data to Application
| | | #Columns = 3 Return Data Completion11
select * from custlist where subsdate=? and province=?
ロックエスカレーション
行レベルからデータパーティションレベルにエス カレーション
z ロックエスカレーションの発生していない区分では、行レベル のロック
2006-03-30-21.40.06.301996 Instance:v9ichi Node:000
PID:1036464(db2agent (SAMPLE) 0) TID:1 Appid:*LOCAL.v9ichi.060330123956 data management sqldEscalateLocks Probe:2 Database:SAMPLE
ADM5500W DB2 は、ロック・エスカレーションを実行しています。
現在保留されているロックの合計数は
"212" で、保留するロックのターゲット数は"106" です。2006-03-30-21.40.06.327676 Instance:v9ichi Node:000
PID:1036464(db2agent (SAMPLE) 0) TID:1 Appid:*LOCAL.v9ichi.060330123956 data management sqldEscalateLocks Probe:3 Database:SAMPLE
ADM5504W ロック・インテント"S" に対する、表"V9ICHI .CUSTLIST" の
DATAPARTITIONID "0" 上での"206" 個のロックのエスカレーションは成功しました。
©日本IBMシステムズ・エンジニアリング(株) Information Management部 149
ロック名 = 0xFFFA8000FFFF000000
00000054
ロック属性 = 0x00000000
リリース・フラグ = 0x00000001
ロック・カウント = 1
保留カウント = 0
ロック・オブジェクト名 = 32768
オブジェクト・タイプ = 表
表スキーマ = V9ICHI
表名 = CUSTLIST
モード = IS
ロック名 = 0xFFFA80000000000000
00000054
ロック属性 = 0x00000002
リリース・フラグ = 0x00000001
ロック・カウント = 1
保留カウント = 0
ロック・オブジェクト名 = 32768
オブジェクト・タイプ = 表パーティション
表スペース名 = TS1
表スキーマ = V9ICHI
表名 = CUSTLIST
データ・パーティション ID = 0
モード = S
ロックエスカレーション(続き)
パーティション・レベルの Sロックにエスカレーション が発生
パーティション表の照会 まとめ
区分限定スキャンにより、参照データページを少 なくすることができる
z 述部に区分化キーが指定されていた場合、表スキャン、索引 スキャンとも、区分限定スキャンが可能
z スキャン対象のパーティションはSQLコンパイル時に確定する 場合と実行時に確定する場合(ホスト変数やパラメーターマー カー利用の場合)がある
z 特定されたパーティションの情報は、エクスプレインによって調 査が可能
行レベル、データ・パーティションレベル、表レベ
ルでのロックが取得される
©日本IBMシステムズ・エンジニアリング(株) Information Management部 151
ユーティリティの実行
<第1.00版 2006年 7月>
パーティション表へのLOAD
通常の表と同様にLOADユーティリティの実行が 可能
z LOADユーティリティが格納先のパーティションを判別
z 入力データを自動的にターゲットのパーティションへ 割り振る
z データの事前ソート等は不要
©日本IBMシステムズ・エンジニアリング(株) Information Management部 153
入力データに適合するパーティションが未定義の場合
適合するパーティションがない(Range Violation)データ は拒否
z 拒否されたデータは、例外表へ出力することが可能
¾
例外表を指定しない場合、拒否された行は失われる
¾
例外表としてパーティション表の指定は不可
¾
拒否された行は、警告回数(WARNINGCOUNT)にカウントされない
z デタッチされたパーティション、アタッチ後SET INTEGRITY未実 行のパーティションはLOADの対象外
z 拒否された行が発生した場合でも、LOADコマンドの戻りコード は0
¾
拒否された行の発生を検知するためには、LOADの実行後、例外表の内容確 認が必要
LOAD時の考慮点
特定パーティションのみをLOADの対象とすることはでき ない
z LOAD中の表の可用性は通常の表と同様
¾
LOAD中はすべてのパーティションにREADアクセス可能(ALLOW READ ACCESSの場合)
¾
LOAD中はすべてのパーティションに読み書き不能(ALLOW NO ACCESSの 場合)
¾
LOADの異常終了時は、全パーティションがロード保留状態
z パーティション単位での置き換え(Replace)はできない
¾
パーティション単位での洗い替えはデタッチ/アタッチを使用
©日本IBMシステムズ・エンジニアリング(株) Information Management部 155