• 検索結果がありません。

DATA INITIALLY DEFERRED

ドキュメント内 データベース物理設計 (ページ 92-101)

MQTの作成

 CREARE TABLE 文にて指定

 materialized-query-definition で基礎表に対するSELECT文を定義

©日本IBMシステムズ・エンジニアリング(株) データ・プラットフォーム部 93

②データ容量の見積もり

物理設計の流れ

①表・索引定義の作成

②データ容量の見積もり

③インスタンスの構成と データベース分割

④表の分類と 表スペースの構成

⑤表スペース容量の見積もり

⑥ディスク上への オブジェクトの配置

 表の見積り

 索引の見積り

 表圧縮(行圧縮)/索引圧縮の 考慮

⑨シェル/コマンドの作成

⑧構成パラメータの設定

⑦ユーザーと権限の設計

©日本IBMシステムズ・エンジニアリング(株) データ・プラットフォーム部 95

表・索引の見積もり

 前提:

 物理設計手順「①表・索引定義の作成」において、作成すべき表、索引が洗い出され ている

 見積もりの基礎となる前提の数値、算定根拠を明確にする

各表のレコード件数を見積もる上で必要な数値の収集 – コード類、マスター類の件数、1日あたりの処理件数

– データの保持期間、データ増加率 ...etc.

お客様にAuthorizeされた前提の数値であることが重要

– 前提に変更があれば、都度再見積もり可能なようにワークシートにまとめてお く

 手順

 表の容量を見積もる

MQTは、表と同様

 索引の容量を見積もる

 圧縮率を加味する

 あくまでも見積もりであり、テスト環境のDBでデータを格納し確認

解説

 物理設計手順「①表・索引定義の作成」において、作成すべき表、索引が洗い出され、表の列定義、索引キー定義 が行われていることを前提とします。表定義(カラムの属性・長さ)および、索引のキーが決定した後、どれだけのディ スク容量が必要となるかを見積もる必要があります。

 この容量見積もりは、表に含まれるデータだけではなく、索引のデータも含まれます。後段階でパフォーマンス チューニングを行う際に索引が追加されることも考慮し、索引を作成する表スペースの容量には余裕を持たせる必 要があります。

 見積もりの基礎となる前提の数値(コード類、マスター類の件数、1日あたりの処理件数、データの保持期間、データ 増加率等や算定根拠を明確にする必要があります。

 各表のレコード件数を見積もる上で必要な数値の収集は、お客様にAuthorizeされた前提の数値であることが重要

 です。前提に変更があれば、都度再見積もりが必要となりますので、再見積もりが容易になるようにワークシートにまとめ ておきましょう。

 手順としては、全ての表、索引の容量を見積もり、圧縮を使用する場合は、圧縮率を加味します。

 MQTはViewの一種ですが、永続的にストレージを使用するため、表と同様に容量を算出します。

 データベース・オブジェクトのサイズは、正確に見積もることができません。サイズの見積もりを難しくする原因は、

ディスクのフラグメント化によって発生するオーバーヘッド、フリー・スペース、および可変長列の使用などです。これ は、列タイプや行の長さが広い範囲で異なる可能性があるためです。まずデータベースのサイズを見積もってから、

テスト・データベースを作成し、それに標準的なデータを入れてみてください。

©日本IBMシステムズ・エンジニアリング(株) データ・プラットフォーム部 97

表の見積もり

 表容量概算:

(論理レコード長+10)×レコード件数×安全率

論理レコード長

各データ項目のデータ・タイプ、桁数から各項目の物理サイズを算出。

可変長の場合は、平均長を採用。

NULL値を許す場合1バイト、可変長の場合4バイトを各該当の列項目あたり加算

すべてを合計したのが1行あたりの論理レコード長

レコード件数

保存期間、データ増加率も加味

安全率(余裕率)

PCTFREEの割合やAPPENDモードであるかも考慮する

オーバーヘッド分(フラグメンテーションやオーバー・フロー・レコードの有無)

Long列データは他の表データとは別のところに保管

表内の他の列と同じページには、実際のLONG, LOBデータへのポインター情報のみ持つ LONG VARCHAR、LONG VARGRAPHICは24バイト

LOB記述子(LOBデータへのポインター)はLOB最大サイズによって長さが異なる

V9.7から、指定サイズ以下のLOBは、他のデータと同じ場所に保存可能(インライン格納)

必要なディスク容量

表スペースのページ・サイズを決定し、1ページあたりの行数から必要ページ数を導く(後述)

解説

 ここで、レコード長を計算する場合、ヌルが可の場合1バイト、可変長の場合4バイトを加える必要があります。

 論理レコード長は、各データ項目のデータ・タイプ、桁数から各項目の物理サイズを算出して、可変長の場合は、平 均長を採用します。NULL値を許す場合1バイト、可変長の場合4バイトを各該当の列項目あたり加算し、これらをす べて合計したのが1行のレコード長となります。

 レコード件数は、保存期間、データ増加率も加味します。また、安全率としてPCTFREEの割合やAPPENDモードであ るかの考慮や、オーバーヘッド分(フラグメンテーションやオーバー・フロー・レコードの有無)も考慮します。

©日本IBMシステムズ・エンジニアリング(株) データ・プラットフォーム部 99

索引の見積もり

 索引容量概算:

(平均索引キー・サイズ+索引キーのオーバーヘッド)×行数×安全率

表スペースの

タイプ 表タイプ 索引タイプ

索引キーの オーバーヘッド

(バイト)

通常

(REGULAR)

非パーティション 任意 9

パーティション

パーティション 9

非パーティショ

11

大きい

(LARGE) パーティション

パーティション 11

非パーティショ

13

平均索引キー・サイズ

基本的な算出方法の考え方は表と同等

索引キーのオーバーヘッド

索引を保管する表スペースのタイプ、索引 が作成される表のタイプ、に依存

安全率

ノンリーフ・ページやフリー・スペースなどのオーバーヘッドのため、少なくとも2倍は必要

索引の作成時のソートに必要な一時スペースの領域は、上記の式の安全率を3.2として見積 もる

後にパフォーマンスチューニングで索引が追加されることも考慮し余裕を見ておく

解説

 索引のキー長も算出方法は基本的には表と同等です。

 行数については、MDC表のブロック索引(MDC表に対して、内部的に作成される)は、「行数」を「ブロック数」で置き換 えます。

 LARGE表スペース(RID6バイト)は、通常のREGULAR表スペース(RID4バイト)より、2バイト拡張されています。また、

索引タイプを非パーティション(NOT PARTITIONED)にすると、パーティション表のグローバル索引となり、索引キー にパーティションIDが含まれるため、その分の2バイトが追加で必要となります。

 後段階でパフォーマンスチューニングを行う際に索引が追加されることも考慮し、索引を作成する表スペースの容量 には余裕を持たせる必要があります。

 最終的に必要なディスク容量は、表スペースのページ・サイズを決定し、1行の長さから1ページあたりの行数を算出 し、全データ件数をその1ページあたりの行数で割ることにより、必要ページ数を導きます。(後述)

©日本IBMシステムズ・エンジニアリング(株) データ・プラットフォーム部 101

解説

データ・タイプ バイト

INTEGER 4

SMALLINT 2

DOUBLE 8

DECIMAL(n,m) (n/2 + 1)

CHARACTER(n) n

VARCHAR(n) n+4

LONG VARCHAR 24

GRAPHIC n*2

VARGRAPHIC (n*2)+4

ドキュメント内 データベース物理設計 (ページ 92-101)