アクセスプランを確認するには
提供:DB2逆引きWiki
【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"↓