Hitachi

ノンストップデータベース HiRDB Version 9 パフォーマンスガイド


8.2.1 レスポンスを向上させるポイント

処理のレスポンスを向上させるポイントについて説明します。

〈この項の構成〉

(1) トランザクション表

トランザクション表に対する処理のレスポンスを向上させるには,次のポイントがあります。

(a) 断片化の抑止

トランザクション表は,データ更新の頻度が高いですが,データを更新すると,データやインデクスのページには断片化した空き領域が発生し,性能が劣化することがあります。性能を安定させるために,定期的にデータベースを再編成する運用を設計してください。

データベース再編成を実行する間隔が長い場合は,断片化の発生を抑えるデータベース設計も考慮してください。UPDATE文の実行頻度が高い場合に,ページの断片化の発生を抑える設計方法について,次に説明します。

  • ページ内の未使用領域の比率(PCTFREE)の拡大

  • 固定長データ型の適用

それぞれの方法の詳細について,次に説明します。

  • ページ内の未使用領域の比率(PCTFREE)の拡大

    可変長データ型の列に対するUPDATE文の実行で行長が長くなるとき,行を格納するページに,更新後の行長が格納できる連続した空き領域がある場合は,行を格納するページは変わらず,断片化も発生しません。行長が変わるUPDATE文の実行頻度が高い場合は,連続した空き領域を通常よりも大きく確保できるよう,ページ内の未使用領域の比率の値を大きくしてください。ただし,ページ内の未使用領域の比率を大きくすると,格納効率に影響があるので,トレードオフを考慮して設計してください。ページ内の未使用領域の比率の詳細および値の求め方は,マニュアル「HiRDB Version 9 システム導入・設計ガイド」の「ページ内の未使用領域の比率の設定」を参照してください。

  • 固定長データ型の適用

    UPDATE文の実行前後で行長が変わらない場合は,行の格納ページは変わらず,断片化も発生しません。よって,UPDATE文を頻繁に実行する列で,業務上固定長でも問題ない場合は,固定長のデータ型にしてください。

(b) 表の横分割の適用

トランザクション表は,横分割するとレスポンスを向上できることがあります。表の横分割の詳細は,「表の横分割」を参照してください。

(2) その他のポイント

(a) 列のデータ型

列のデータ型を検討するときに,考慮する点を次に示します。

  • DECIMAL型に関する注意事項

    DECIMAL型の列に対して四則演算などの演算をする場合,10進パック形式のため,ほかの数値データ型の列の演算に比べて,処理の効率が悪くなります。格納するデータが整数の場合は,列のデータ型をINTEGER型またはSMALLINT型にしてください。

  • MCHARおよびMVARCHARに関する注意事項

    MCHAR型およびMVARCHAR型(混在文字データ)の列の場合は,条件判定する際に半角文字と全角文字を区別するオーバーヘッドがあります。このため,半角文字と全角文字が混在する場合だけ使用してください。列のデータ型は,格納するデータが半角文字だけの場合はCHAR型およびVARCHAR型,全角文字だけの場合はNCHAR型およびNVARCHAR型にしてください。

  • BLOB型とBINARY型の使い分け

    バイナリデータを格納できるBLOB型とBINARY型の使い分け方については,マニュアル「HiRDB Version 9 システム導入・設計ガイド」の「BLOB型とBINARY型の使い分け」を参照してください。

(b) 空き領域の再利用機能と性能のトレードオフ

空き領域の再利用機能とは,表の使用中セグメントがユーザの指定したセグメント数に達し,そのセグメントが満杯になるとページサーチモードを空きページ再利用モードに切り替えて,使用中ページの空き領域を使用する機能です。機能の詳細は,マニュアル「HiRDB Version 9 システム導入・設計ガイド」の「空き領域の再利用機能」を参照してください。

空き領域の再利用機能を適用すると,格納効率は良くなりますが,データの追加および更新時にデータの格納場所を使用中のページからサーチするため,オーバーヘッドがあります。空き領域再利用機能は,データの追加と削除を繰り返す表の場合だけ適用を検討してください。

また,データの追加および更新の性能を優先する表の場合は,空き領域再利用機能は適用しないで,空き領域をデータベース再編成や空きページ解放などで解放して,格納効率を上げることを推奨します。