DB2のSQLパフォーマンス改善」MacBookのDB2で試しながらと思ったけど、db2expllnコマンドの引数指定がやたらめったら多くていきなり挫折...db2exfmtコマンドの方を試してみよう。こっちの方が細かく実行計画が見られるみたい。ためのテーブルを作成する。$HOME/sqllib/misc/EXPLAIN.DDLにCREATE文がある。以下のコマンドを実行。successfully.が大量に表示されて、なんとなく成功したかな。OSユーザーが既にDB2管理者なのでこの辺はさすが簡単ですね。続けてコマンドラインで、SQLの実行計画を収集。noコマンドライン経由なのでエスケープがちょっと必要ですね。バックスラッシュでエスケープ。Q1テキストで頑張ってるのがキュンっときますね。色々な要素を学ぶことができました。実例を題材にして仕組みを説明してもらえたので、とてもわかりやすかったですね。遅いSQLがあって、インデックスアドバイザー(!?)が何も言ってくれない、どうすればいい?と。半分以上は「SQLというかなんというか」という問題が実は多かったです。ないかもしれないなぁと。精通してるかどうかっていうより、そこに口出しできる立場や環境があるかどうかってところが大きいかな。「とにかくこのSQLが遅いのでなんとかして」って頼まれる。それはそれで職人って感じでかっこいい面もあるけど、ケースによっては不毛な依頼が来たりもするんだろうなぁと。実際に見たことのあるケース。「業務的にはどうでもよかったんだけど、まあ決めでこの並び順で」ってノリで決められたソート仕様でめっちゃSQL大変なことになって、パフォーマンスに四苦八苦してるパターンを見たことがあります。それと似たようなことがわりとあります。仕様決めた人とプログラミングする人が距離が遠くてお話にならない。多いのは、プログラマーのアプリケーション部分の実装がへんてこりんで、SQLにしわ寄せが来ちゃってるとかで、SQLをどうのこうのする前に、ロジック部分の組み立てを整理整頓すべきでしょって。自分は、アプリ側に距離が近い立場のことの方が多いので、パフォーマンス相談されたら、まずはそこから分析し始めます。(それはもうソースコード追っかけますよー、じっくりね)ある意味、SQLを速くするのは最後のフェーズと言えるかも。逆に言うと、だいたいそうやって解決しちゃうから、じっくりコアな仕組みまで追ったSQLチューニングの経験をなかなか得ることができないので、こういう勉強会で学びたいと。「SQLチューニングと思ったら、そもそも論で解決事例」なんてテーマのセッションやったらおもしろいかな(^^(そういうネタ整理やっておこうかなぁ...)とはいえ、最後の砦のSQLチューニング、DBMSのコアな仕組みまで考慮にいれたチューニング、これはこれでプロフェッショナルなスキルだなぁと。「片手間ではなかなか体得できない」ですよね。自主トレするしかないですが、これまたDBMSごとに仕組みが違うから、一つのDBMSになかなか絞れない。学ぶことがあったという証拠なので、ClubDB2に感謝感謝です。大きい場合にも索引スキャンを選択しやすいとのこと。合わせると良いとのこと。仕様的にもくっ付いてくるものだけど、ソートしても有効かな...(ソートカラムもインデックスに含まれてればOKかなぁ...)とにもかくにも気になったのがとにかくこれ。効果ありそうですねとのこと。勘の良いDBFluteユーザであれば、DBFluteが何を企んでるか想像が付くかもですね。DBFluteがさらに現場フィットなものとして発展するためにも、フィットネタを追い求め駆け回っていきたいですね。ある意味、DBFluteのビジネスチャンスを探す旅と言えるかも。再開したディズニーシーにはてなブログをはじめよう!jfluteさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。