Symfoware(R) Server RDBユーザーズガイド データベース定義編 - FUJITSU -
目次 索引 前ページ次ページ

上へ第2章 データベースの作成

2.12 最適化情報の設定

データベースを効率よくアクセスするために、最適化情報の設定を行います。最適化情報は、格納構造の定義が完了した後に、データベースに格納するレコードの件数やインデックスキーのバリエーションを想定して値を設定します。

最適化情報を設定後、アクセスプランを取得し、解析します。これによって、データベースを適切にチューニングすることができます。一度アクセスプランによってチューニングしたあとは、それ以降にデータの状態に変更があっても、最適化情報の設定および更新は必要ありません。アクセスプランの取得および解析の詳細については、“SQLTOOLユーザーズガイド”を参照してください。

データベースに格納するレコードの件数やインデックスキーのバリエーションを事前に想定できない場合は、データベースに実際にデータが格納されたあとに最適化情報の設定を行うこともできます。

■最適化情とは

最適化情報とは、データの状況に応じてできるだけ効率のよいデータ処理を行うための情報です。最適化情報は、実表のDSIおよびインデックスのDSIに対して設定され、応用プログラムを実行する際に利用されます。最適化情報の内容は、実表のデータ件数、実表のDSIおよびインデックスのDSIの使用量などのデータベース内のデータ状況により変化する値の情報です。

■最適化情報の設定契

最適化情報は、通常、格納構造の定義が完了した後に、データベースに格納するレコードの件数やインデックスキーのバリエーションを想定して値を設定します。以下に設定契機を示します。

◆事前に想定した値で最適化情報を設定する場合

■最適化情報の設定方

事前に想定した値で最適化情報を設定する場合、rdbddlexコマンを使用して、SET STATISTICSで設定します。SET STATISTICS文の詳細については、“SQLリファレンスガイド”を参照してください。

最適化情報は、表とインデックスに対してDSIごとに設定します。

最適化情報を、表やインデックスのDSOごとに設定することもできますが、この場合は、システムが指定された値をDSIごとの値に変換して設定します。したがって、DSIごとに最適化情報を設定することを推奨します。

以下に最適化情報の設定を示します。

設定方法により、設定する項目が異なります。設定する最適化情報の詳を以下に示します。

◆DSIごとに設定する場合

表のDSI(SEQUENTIAL構造)

設定項目

設定内容

省略時の設定値

レコード件数

格納するレコード件数を設定

省略不可

使用ページ数(DATA部)

DSIの容量見積りで算出した値を設定

最大レコード長でシステムが自動計算して設定

表のDSI(RANDOM構造)

設定項目

設定内容

省略時の設定値

レコード件数

格納するレコード件数を設定

省略不可

使用ページ数(PRIME部

DSIの容量見積りで算出した値を設定

最大レコード長でシステムが自動計算して設定

使用ページ数(OVERFLOW部)

(注1)

0を設定

最大ページ数(OVERFLOW部)

(注1)

0を設定

平均ページ数(OVERFLOW部)

(注1)

0を設定

表のDSI(OBJECT構造)

設定項目

設定内容

省略時の設定値

レコード件数

格納するレコード件数を設定

省略不可

使用ページ数(DATA部)

DSIの容量見積りで算出した値を設定

最大レコード長でシステムが自動計算して設定

インデックスのDSI(BTREE構造)

設定項目

設定内容

省略時の設定値

使用ページ数(BASE部)

DSIの容量見積りで算出した値を設定

最大レコード長でシステムが自動計算して設定

インデックスの高さ

(注1)

関連する表のレコード件数によりシステムが設定

異なるキー値数

インデックスを構成する列の組合せごとの異なるキー値の数を設定(注2)

省略不可

注1) 作成したデータベースが、以前にデータが格納されたあとに最適化情報を設定したデータベースと同じ構成であるなど、設定値が分かっている場合に設定します。

注2) 以下に設定例を示します。

インデックスを構成する列名が、それぞれ“部コード”および“課コード”であるとします。

列名“部コード”には10種類のコードが格納されており、“部コード”と“課コード”の組合せが100種類あるとします。この場合、設定する値は、10と100です。

◆表ごとに設定する場合

設定項目

設定内容

省略時の設定値

レコード件数

格納するレコード件数を設定

省略不可

備考.表がDSI分割されている場合は、指定された値をDSI数で割った値を各DSIに設定します。

◆インデックスのDSOごとに設定する場合

設定項目

設定内容

省略時の設定値

異なるキー値数

インデックスを構成する列の組合せごとの異なるキー値の数を設定(注)

省略不可

注) 以下に設定例を示します。

インデックスを構成する列名が、それぞれ“部コード”および“課コード”であるとします。

列名“部コード”には10種類のコードが格納されており、“部コード”と“課コード”の組合せが100種類あるとします。この場合、設定する値は、10と100です。

備考.表がDSI分割されている場合は、指定された値をDSI数で割った値を各DSIに設定します。

この計算結果が1以下となる場合は1を設定します。

■最適化情報の出

設定した最適化情報を出力する場合、rdbddlexコマンを使用して、PRINT STATISTICSで出力します。PRINT STATISTICS文の詳細については、“SQLリファレンスガイド”を参照してください。

以下に指定例と出力例を示します。

例1

表のDSIごとに設定した最適化情報の出力例(データ構造:SEQUENTIALまたはOBJECT)

image

(1) データベース名

(2) DSI名

(3) DSIに格納するレコード数

(4) レコードを格納するページ数

例2

表のDSIごとに設定した最適化情報の出力例(データ構造:RANDOM)

image

(1) データベース名

(2) DSI名

(3) DSIに格納するレコード数

(4) レコードを格納するPRIME部のページ数

(5) レコードを格納するOVERFLOW部のページ数

(6) DSO定義のRULE指定(省略時はシステムで決定)により分類された各バケットの平均のOVERFLOW部のページ数(詳細は“格納構造”を参照してください。)

(7) DSO定義のRULE指定(省略時はシステムで決定)により分類された各バケットの最大のOVERFLOW部のページ数(詳細は“格納構造”を参照してください。)

例3

インデックスのDSIごとに設定した最適化情報の出力例(データ構造:BTREE)

image

(1) データベース名

(2) DSI名

(3) レコードを格納するBASE部のページ数

(4) INDEX部の高さ(詳細は“格納構造”を参照してください。)

(5) インデックスを構成する列の異なるキー値の数

例:インデックスを構成する列が、“会社コード”、“部コード”および“課コード”であるとします。

この場合、出力される異なるキー値の情報は以下のようになります。

例4

表ごとに設定した最適化情報の出力例(データ構造:SEQUENTIALまたはOBJECT)

image

(1) データベース名

(2) スキーマ名

(3) 表名

(4) 表を構成するDSIの最適化情報(表を構成するDSIの数分、出力されます)

(5) 表のインデックスのDSO名(インデックスのDSIの最適化情報(6)と合わせて表のインデックスのDSO数分、出力されます)

(6) インデックスのDSOを構成するDSIの最適化情報(インデックスのDSOを構成するDSIの数分出力されます)

 

例5

表ごとに設定した最適化情報の出力例(データ構造:RANDOM)

image

(1) データベース名

(2) スキーマ名

(3) 表名

(4) 表を構成するDSIの最適化情報(表を構成するDSIの数分、出力されます)

(5) 表のインデックスのDSO名(インデックスのDSIの最適化情報(・)と合わせて表のインデックスのDSO数分、出力されます)

(6) インデックスのDSOを構成するDSIの最適化情報(インデックスのDSOを構成するDSIの数分出力されます)

 

例6

インデックスのDSOごとに設定した最適化情報の出力例

image

(1) データベース名

(2) インデックスのDSO名

(3) インデックスのDSOを構成するDSIの最適化情報(インデックスのDSOを構成するDSIの数分、出力されます)


目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2003