インデックス内の断片化とスキューの量に関する情報をレポートします。
sa_index_density( [ tbl_name [, owner_name ] ] )
tbl_name テーブル名を指定する任意の CHAR(128) パラメーター。
owner_name 所有者名を指定する任意の CHAR(128) パラメーター。
カラム名 | データ型 | 説明 |
---|---|---|
TableName | CHAR(128) | テーブルの名前。 |
TableId | UNSIGNED INTEGER | テーブル ID。 |
IndexName | CHAR(128) | インデックスの名前。 |
IndexId | UNSIGNED INTEGER |
インデックス ID。このカラムには、次のいずれかの値が含まれます。
|
IndexType | CHAR(4) |
インデックスタイプ。このカラムには、次のいずれかの値が含まれます。
|
LeafPages | UNSIGNED INTEGER | リーフページの数。 |
Density | DOUBLE | 各インデックスページが (平均で) どの程度埋まっているかを示す 0 ~ 1 の間の小数。 |
Skew | DOUBLE | インデックス内の偏りのレベルを示す数。1 は完全にバランスの取れたインデックスであることを示します。値が大きくなるほどスキューも多くなることを示します。 |
sa_index_density システムプロシージャーは、インデックスの断片化とスキューの程度に関する情報を取得するときに使用します。多数のリーフページを持つインデックスの場合は、Density 値を大きくして不均衡値を小さくすることをおすすめします。
インデックスの密度は、インデックスページの平均の満杯度をパーセントとして反映しています。密度が 0.7 の場合、インデックスページに平均で 70% のインデックスデータが入っていることを示しています。インデックススキューは、平均密度からの一般的な偏差を反映しています。オプティマイザーが選択性推定を行う場合、このスキュー量は重要です。
リーフページ数が少ない場合は、密度とスキューの値を考慮する必要はありません。密度とスキューの値は、リーフページ数が多いときだけ重要です。リーフページ数が多い場合、密度の値が低いと断片化を表し、不均衡値が高いとインデックスが偏っていることを示します。どちらも、パフォーマンス低下の要因になります。REORGANIZE TABLE 文を実行すると、この両方の問題に対処できます。
テーブルを指定しないでこのプロシージャーを呼び出すと、データベース内のすべてのテーブルのすべてのインデックスに関する情報が返されます。
また、アプリケーションプロファイリングウィザードを使用すると、インデックスの密度とスキューのレベルが許容範囲内にあるかどうかを判断できます。
DBA 権限。
なし。
次の例は、sa_index_density システムプロシージャーを使用して、データベースのすべてのインデックス内の断片化とスキューの量をまとめた結果セットを返します。
CALL sa_index_density( ); |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |