ぱと隊長日誌

ブログ運用もエンジニアとしての生き方も模索中

「SQLパフォーマンス詳解」(原文タイトル:SQL Performance Explained)の紹介と購入時のポイント

本の紹介

SQLパフォーマンス詳解」(原文タイトル:SQL Performance Explained)はデータベースのBツリーインデックスについて解説しています。インデックスの仕組みから実務に活かせるテクニックまで幅広く取り上げられています。
データベースのインデックスは本やセミナー資料で度々取り上げられる内容ですが、この本はそれらの内容を1冊にまとめ上げています。どこかで見たのだけど…と探して回る前に、この本を紐解けばすぐにみつかるかもしれません。

本はOracleを中心とした構成ですが、補足でMySQLPostgreSQLSQL Serverについても解説しています。著者によれば、Bツリーインデックスは多くのデータベースでほぼ同じように動作すると述べていますし、どのデータベースでも通用する内容となっています。

実はこの本のほぼ全文がオンラインで公開されています。
Use The Index, Luke
データベースのインデックスやパフォーマンスチューニングについて調べているうちに、このサイトへたどり着いた方も多いのではないでしょうか。私もPostgreSQLのインデックスについて調べているうちにたどり着きました。

Webにて無償で公開されているものを購入するのはもったいなく感じるかもしれません。私の場合は著者(@さん)及び翻訳者(@さん)へ恩返ししたいという気持ちからPDF版を購入しました。また、Web版よりPDF版のほうがよみやすく感じました。

まずはオンライン版で内容を確認し、興味を持たれたら購入を検討されてはいかがでしょうか。

日本語版の購入方法

購入サイトはこちらになります。
SQLパフォーマンス詳解
念のためVirusTotalでスキャンしましたが、Clean Siteとの判定でした(2017/03/05時点)。

印刷版とPDF版があります。
印刷版は海外のAmazon(.com/.co.uk/.de)で購入できます。上記サイトから遷移できます。なお、現時点で日本のAmazonからは購入できません。
PDF版は上記サイトから購入できます。2017/03/05時点で9.95ユーロ(約1,300円)でした。

上記サイトからの購入の場合、価格表示はユーロです。支払いはPayPalを利用しています。

PDF版購入の場合、プルダウンでPDFを選択し、「レジへ」ボタンをクリックするとPayPalへ遷移します。PayPalで支払いを済ませると、PayPal登録のメールアドレスへPDF版ダウンロードリンクを含んだメールが届きます。

割引コードの適用

利用可能(2017/03/05時点)な割引コードがありました。PDF版であれば9.95ユーロが5.00ユーロへディスカウントされます。

@さんのブログにコードが記載されています(ここではコードを転記しません)。
SQLのインデックスについて解説した洋書が良かった件。PDF版もあるよ(2012/10/22までの割引購入クーポン有) - Dマイナー志向
ただ、上記エントリによれば本来は2012/10/22で期限が切れるはずだったので、著者が寛大なのか、それとも無効化を忘れているだけかもしれません。
このような背景があるため、購入時点で割引率が変わっていたり、無効になっていたとしてもご了承ください。

割引コードの入力方法を説明します。
「レジへ」ボタンの下にある「割引コードを入力」リンクをクリックします。
割引コードを入力し、「買い戻す」ボタンをクリックします。
すると、表示された価格が当初よりディスカウントされているはずです。コードが無効な場合はエラーとなります。

f:id:pato_taityo:20170305164327p:plain

PayPal支払いでの為替レートと手数料

海外サイトでの購入で気になることの一つに為替レートと手数料があります。
PayPalでは為替レート及び手数料をPayPalとクレジットカード会社から選べます(一部のカードブランドでは選べないようです)。詳細については以下の記事を参照ください。
PayPalの高い日本円の為替手数料(レート)を安く節約する方法

まとめ

SQLのパフォーマンスを上げるためにはインデックスを理解することが重要となります。インデックスにはいくつか種類がありますが、中でもBツリーインデックスは基本といえます。この本(およびサイト)はその基礎知識を学ぶ上でお勧めできます。
今回の本をお勧めするにあたり、本の内容は公開されているため、不安を抱きやすい購入手順を中心にまとめました。ご興味を持たれた方の参考になれば幸いです。