17.4.2 注意事項
(1) リターンコードについて
pdvwopt実行時のリターンコードは,0の場合は正常終了,8の場合は異常終了となります。
(2) アクセスパス情報ファイル取得時の注意事項
-
クライアント環境定義のPDVWOPTMODEに1以上を設定していると,アクセスパス情報ファイルを作成するためのサーバ負荷が増加します。そのため,アクセスパス情報を取得する必要がある場合だけ設定するようにしてください。ただし,UAPレポート機能でアクセスパス情報の出力を指定していると,サーバ負可が増加することがあります。UAPレポート機能については,マニュアル「HiRDB UAP開発ガイド」を参照してください。
-
クライアント環境定義のPDVWOPTMODEに1を設定した場合,調査対象となるSQLのSQLオブジェクトがキャッシュヒットすると,SQL最適化処理をしないため,以前に作成したSQLオブジェクトを使用して検索します。このため,アクセスパス情報は取得されません。
-
クライアント環境定義のPDVWOPTMODEに2を設定していると,調査対象となるSQLのSQLオブジェクトがキャッシュヒットする場合でも,アクセスパス情報を取得します。したがって,キャッシュヒットに関係なくSQL最適化処理をしてSQLオブジェクトを作成するため,PDVWOPTMODEに1を設定した場合に比べてサーバ負荷が増えることがあります。
-
ストアドプロシジャに記述したSQLについては,CALL文を実行してもアクセスパス情報は取得されません。この場合,次のどれかの方法でアクセスパス情報を取得してください(ただし,現在のコスト情報を基にSQLオブジェクトを再作成するため,従来のアクセスパスと変わることがあります)。
-
ALTER PROCEDUREを実行してSQLオブジェクトを再作成してください。
-
DROP PROCEDUREでストアドプロシジャを削除し,CREATE PROCEDUREでSQLオブジェクトを再作成してください。
-
-
トリガに記述したトリガSQLについては,トリガが実行されてもアクセスパス情報は取得されません。トリガSQLのアクセスパス情報は,次の方法で取得してください(ただし,現在のコスト情報を基にSQLオブジェクトを再作成するため,従来のアクセスパスと変わることがあります)。
-
ALTER TRIGGERを実行してSQLオブジェクトを再作成してください。
-
-
HiRDBはアクセスパス情報ファイルを削除しません。したがって,不要になったアクセスパス情報ファイルは削除してください。ただし,SQL情報ディレクトリ(%PDDIR%\spool\pdsqldump)は削除しないように注意してください。削除した場合は,アクセスパス情報ファイルを作成できなくなります。
-
CREATE TABLEの参照制約動作にCASCADEを指定した参照表を定義すると,内部的にトリガが生成されるため,参照表定義時にアクセスパス情報を取得します。
-
参照表定義時に生成したトリガについては,トリガが実行されてもアクセスパス情報は取得されません。この場合,ALTER ROUTINEを実行してSQLオブジェクトを再作成し,アクセスパス情報を取得してください。なお,現在のコスト情報を基にSQLオブジェクトを再作成するため,既存のアクセスパスと変わることがあります。
-
VALUES指定のINSERT文を実行した場合,次の機能を実行したときだけアクセスパス情報を取得します。
-
トリガ
-
参照制約
-
スカラ副問合せ
-
(3) アクセスパス表示ユティリティ実行時の注意事項
アクセスパス表示ユティリティとアクセスパス情報ファイルのバージョンが異なるとエラーとなります。バージョンの一致したアクセスパス表示ユティリティとアクセスパス情報ファイルを使用してください。
(4) 出力形式の出力情報についての注意事項
アクセスパス表示ユティリティの実行結果には{ }で囲まれた情報が表示されますが,これはシステム内部情報です。