『SQL 実践入門』読んだ

SQL実践入門』という名前だけど、 実行計画がバンバン出てくるので、とても初心者向けではない。 SQL と実行計画の解説がたっぷりの、中級者以上向けの本だった。

SQL の実行計画が読めれば、SQL のパフォーマンス問題の大半が解決できそうに思える。 例えば、テーブルに何度もアクセスしていたり、インデックスが使われていなかった、 といったことが原因なら実行計画を見れば判断できる。 また、結合時に TMP 落ちしていて余計なディスク IO が発生している、ということも 実行計画を見て推測できる、かもしれない。

ただ、実行計画は統計情報から作成されるので、統計情報が実際のデータと違っていたら、 実際のデータに即した実行計画は作成されない。実行計画を100%鵜呑みにはできない。 モデルの設計を変更しないと根本的に解決できないようなケースも存在するので、 実行計画が読めれば全て OK というものでもないのがツライところ。

自分の場合、実行計画については無頓着だったので、実行計画を意識して SQL を書くように心がけよう。 本当は実行計画を意識しないで済むのが一番いいし、SQL はそれを理想としているみたいだけど、 理想にまだ現実は追いつけていないから。

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)