- ベストアンサー
SQLの実行計画の取得について
- SQLの実行計画の取得方法とコストベースとルールベースについて
- コストベースとルールベースの実行計画の比較とコストの数値のチューニング目安
- 統計情報の参考と本番データの利用の必要性
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> そうすると実行計画のcostというのは、コストベースのコストとは別ということなのですね。 DB2には詳しくないので単なる想像ですが、(コストベースのプランニングで使う)対象処理の予測コストの値を表示しているのでは? > この実行計画の確認のタイミングですが、・・・ 私がよく関わっている中小規模のシステムについては、性能試験は行われなかったり後回しにされる傾向が有りますので、結合より後になるのが一般的だと思います。それが良い訳ではないのですが・・・。 可能であれば、当然、早い段階で確認する方が良いと思います。 ただし、テーブル定義やSQLが変更されれば、それまでの実行計画の調査結果は無駄になりますので、機能仕様やテーブル定義が固まった時期を見計らって行うのが良いかと。
その他の回答 (1)
- root139
- ベストアンサー率60% (488/809)
DB2 はコストベースのオプティマイザしか無いそうです。(参考URL) 実行計画の表示方法はDBMSの仕様によって違いますので、コストベースか否かの確認方法は個々の製品・バージョンによるかと。 > 本番で想定されるデータ量をDBにいれて統計情報を取得して実行計画を確認しないと意味がないということでしょうか? 基本的にはそうだと思います。 性能が課題となるようなシステムの場合は、性能テスト用に大量のデータを入れた環境が作られることが多いと思いますが、そういった環境が有れば、そこで実行計画の確認をすれば良いかと。
お礼
お返事有難うございます。 DB2はコストベースのみなのですね。そうすると実行計画のcostというのは、コストベースのコストとは別ということなのですね。 >性能が課題となるようなシステムの場合は、性能テスト用に大量のデータを入れた環境が作られることが多いと思いますが、そういった環境が有れば、そこで実行計画の確認をすれば良いかと。 この実行計画の確認のタイミングですが、一般には製造やUT・結合試験などが終わったあたりになるのでしょうか。 それとも詳細設計やプログラム設計でSQL文を決める際に行うものなのでしょうか。
お礼
お返事有難うございます。今の段階では色々と決まっていないとのことなので、あまり気にしても仕方がなさそうですね。 ただSQLが詳細設計やプログラム設計に書くので、レビュー時に性能について言われることもあり、どうしたものかと思っていまして・・・。そういう場合は現状パフォーマンスが下がらないように考えていますが(どこらへんを?って言われると厳しいですが)、あとは試験でパフォーマンスが悪い場合は調整しようと考えています。とか言っておくぐらいしかないでしょうか。