FAQ
 

■対象バージョン : 9.0.x

■対象OS    :すべて

QUESTION(SQ0801073)

サーバのメッセージウインドウに「パフォーマンス警告 : データベース "(DB名)" では、テーブル "(テーブル名)" のオートインクリメント・カラム "(カラム名)" にインデックスが設定されていません。」という警告が表示されますが、これは何ですか?

ANSWER

・警告の原因
オートインクリメント・カラムは、システムテーブル上に、そのカラムの最大値を保持しており、次の値を自動的に決定しております。

しかし、Load Table 文などによりデータのインポートを行った直後は、現在のテーブルのローをもとに、新たにオートインクリメント・カラムで使用する次の値(カラムの最大値)を決定する必要が発生致します。

この際、対象となるオートインクリメント・カラムにインデックスが存在しておりませんと、テーブルスキャンによりカラムの最大値を検索することになり、パフォーマンスの低下が発生する可能性がある為、この警告メッセージが表示されます。

・警告の解決策
オートインクリメント・カラムが複合キーの一部である場合、可能であればテーブルのレイアウトを変更し、対象のカラムをキーの先頭カラムとするか、対象のカラムを新たなインデックスとして定義することにより、そのカラムをインデックス・スキャン可能にすることで、上記の警告は表示されなくなります。

ただし、テーブル・レイアウトの変更や、インデックスの追加を行った場合、別の処理でのパフォーマンスの低下が発生する可能性もございますので、特にパフォーマンスの問題が発生していないようであれば、上記の対策を行わず、この警告を無視するということも一つの選択肢となります。

なお、実際にはローの INSERT 時にオートインクリメントを設定したカラムへ値を指定しており、オートインクリメント・カラムとして使用されていない場合には、オートインクリメント・カラム・デフォルトの定義をやめることも有効な解決策となります。


BACK:FAQ トップページ
 
 
Copyright 2008-2010 iAnywhere Solutions K.K.