BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース レビュー:The Art of High Performance SQL Code

レビュー:The Art of High Performance SQL Code

SQL Serverクエリの実行計画を検討することと、その意味を理解することは、まったくの別物である。Grant Fritcheyが書いた本、『The Art of High Performance SQL Code: Part 1 Dissecting SQL Server Execution Plans』(訳:高性能SQLコードの芸術:SQL Server実行計画の分析 パート1)がその理解に役立つ。

この本は実行計画のあらましから始まる。ほとんどの本では冒頭の章につまらない無用の話を詰め込むようだが、この本では最初の章からすぐに、実行計画がリコンパイルされる時期や、クエリによっては実行計画が2つ存在する理由といった、役立つ情報を紹介している。

本当にすばらしいのは2章である。ハッシュマップ結合(hash map join)と入れ子ループ結合(nested loop join)の違いや、どちらが優れているかが書かれている。この章には絶対的な原則はほとんどなく、頻繁に出てくるのは、「あるオペレーションは大型テーブルには向いていても、小型テーブルにはまったく向いていない」とか、その逆である。また、特定のオペレーションではクエリやテーブル設計に問題を示す可能性があるが、その理由についてたくさんアドバイスしてくれる。

3章はテキストの実行計画とXMLベースの実行計画の解釈を目的としている。何ページも続くXMLをじっと見つめるのが好きでない限り、この章は飛ばしてもいいだろう。次の章も実行計画の解釈を取り上げているが、今度は、共通テーブル式(Common Table Expression)を使った計画など、さらに複雑な実行計画を扱っている。

クエリヒントは誤って使うとかなりの損害をもたらす可能性もあるが、オプティマイザのバグが原因の重大なパフォーマンス問題も解消できる。そのため、躊躇はあるが、クエリヒントに関するこの章を読むようお勧めする。ほとんどの開発者はクエリヒントを一度も使うことがないだろうが、クエリヒントが本当に必要となるめったにない時には、その存在がわかっていることになる。

残りの部分では、カーソル、クエリにおけるXML、並列処理、プランガイドといった上級のトピックを扱っている。プランガイドは特に気がきいている。変更可能なストアドプロシージャならびにアプリケーションが作成したアドホッククエリに、クエリヒントの提供が可能になる。

『The Art of High Performance SQL Code』はSQL Server Centralでダウンロード(無料)(サイト)するか、Kindle版の購入が可能である。Red Gateはカンファレンスで印刷版を無料配布することでも有名である。

 

原文はこちらです:http://www.infoq.com/news/2009/03/SQL-Performance

この記事に星をつける

おすすめ度
スタイル

BT