BT

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

| 作者: Jonathan Allen フォローする 553 人のフォロワー , 翻訳者 編集部 フォローする 0 人のフォロワー 投稿日 2009年3月31日. 推定読書時間: 2 分 |

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

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT