【DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#チューニング編】 【DB2逆引きリファレンス目次#アクセスプラン】
前提
- 以下のいずれかが必要: SYSADM権限, DBADM権限
- もしくは以下の特権すべて: システムカタログビューに対するSELECT特権、db2expln、db2exsrvおよびdb2exdynパッケージに対するEXECUTE権限、データベースに対するBINDADD特権(動的SQLの場合)、アクセスプランを確認したいSQLを実行するために必要な特権
解説
SQLのアクセスプランを確認するには、db2explnコマンドを用います。
db2expln -d データベース別名 [-user ユーザー名 パスワード ] 出力先指定
パッケージもしくはSQL指定 [-graph]
データベース別名
: 接続するデータベースの別名を指定します。別名をつけてカタログしている場合以外はデータベース名を指定します。
-user ユーザー名 パスワード
: データベースへの接続にユーザー名とパスワードが必要であれば指定します。
出力先指定
: 出力結果の出力先を以下のいずれかで指定します。
-output 出力ファイル名
: 指定したファイルに出力します。
-terminal
: 標準出力に出力します。
パッケージもしくはSQL指定
: アクセスプランを確認するSQLを以下のいずれの形式で指定します。
-schema スキーマ名 -package パッケージ名
: パッケージに含まれる静的SQLのアクセスプランを確認します。
-stetement "SQLステートメント"
: 単一のSQLステートメントのアクセスプランを確認します。SQLステートメントは必ず二重引用符(")で括ってください。
-stmtfile ファイル名 [-terminater 終端記号 ]
: ファイルに含まれている複数のSQLステートメントのアクセスプランを確認します。
-graph
: 出力にアクセスプランのグラフを含めます。
使用例
データベース(ここではsample)に接続し、SQLステートメントのアクセスプランを標準出力に出力する例。
$ db2expln -database sample -terminal -statement "SELECT * FROM sample"↓