11.4.3 アーカイブマルチチャンク表のデータを検索・更新するときの注意事項
アーカイブマルチチャンク表のデータを検索・更新するときの注意事項を説明します。
(1) SELECT文による行の検索
アーカイブマルチチャンク表の検索処理を実行する際,HADBサーバは最初に各チャンクのアーカイブレンジ列の範囲とSELECT文の探索条件に従って,アクセス対象となるチャンクを絞り込みます。また,アーカイブ状態のチャンク内のデータを検索する場合,インデクスを使用した検索ができません。
そのため,アーカイブマルチチャンク表を検索する場合は,SELECT文の探索条件にアーカイブレンジ列を指定した条件を指定して,アクセス対象となるチャンクを絞り込むようにしてください。詳細については,マニュアルHADB AP開発ガイドのAPの性能向上に関する設計のアーカイブマルチチャンク表を検索する際の考慮点を参照してください。
なお,アーカイブ状態のチャンク内のデータに対して,検索する頻度が一時的に増える場合は,adbunarchivechunkコマンドでチャンクのアーカイブ状態を解除することを検討してください。
(2) INSERT文による行の挿入
INSERT文を実行してアーカイブマルチチャンク表に行を挿入する際は特別な留意事項はありません。挿入した行データは,カレントチャンクに格納されます。
(3) UPDATE文による行の更新
アーカイブ状態ではないチャンク内のデータはUPDATE文で更新できますが,UPDATE文の探索条件の指定に特別な規則があります。詳細については,マニュアルHADB SQLリファレンスのUPDATE文の指定形式および規則の規則を参照してください。
また,アーカイブ状態のチャンク内のデータはUPDATE文で更新できません。アーカイブ状態のチャンク内のデータをUPDATE文で更新したい場合は,adbunarchivechunkコマンドでチャンクのアーカイブ状態を解除してください。
(4) DELETE文による行の削除
アーカイブ状態ではないチャンク内のデータはDELETE文で削除できますが,DELETE文の探索条件の指定に特別な規則があります。詳細については,マニュアルHADB SQLリファレンスのDELETE文の指定形式および規則の規則を参照してください。
また,アーカイブ状態のチャンク内のデータはDELETE文で削除できません。アーカイブ状態のチャンク内のデータをDELETE文で削除したい場合は,adbunarchivechunkコマンドでチャンクのアーカイブ状態を解除してください。