本書は、システム構築プロジェクトにおいてパフォーマンス問題の1つとして挙げられるSQLパフォーマンス問題をどのように解決し、予防できるかを解説するものです。Oracleアーキテクチャを理解しながら、SQLパフォーマンス問題の解決テクニックやこの問題を防ぐためには何が必要なのかなどを考えていきます。また、システム開発の各フェーズにおいて、SQLパフォーマンス問題を起こさないための具体的な仕組みや工夫なども紹介しますので、今すぐSQLチューニングに挑戦したい人はもちろん、予防も含めてじっくり取り組みたい人にもぴったりな一冊です。
本書は、月刊DB Magazineの人気連載「本気で学ぶOracle SQLチューニング」および特集記事を加筆/再編集し、書籍としてまとめたものです。
Part1 SQLパフォーマンス問題の理由と原因を探る
Chapter 1 SQLチューニングはなぜ必要か?
SQLのパフォーマンス問題とは?
Chapter 2 なぜSQLでパフォーマンス問題は起きやすいのか?
SQLの言語的特徴
処理方法はデータベースに任されている
Chapter 3 なぜSQLパフォーマンス問題で苦しむのか?
SQL文を記述する際の状況
SQLのパフォーマンス確認フェーズ
SQLの設計/記述の開発フェーズ
設計者/DBA/開発者の分担構造
Chapter 4 SQLパフォーマンス問題の「解決」と「予防」
SQLパフォーマンス問題が減らない要因や課題
本当の意味でのSQLチューニング
Chapter 5 SQLはどのように処理されるのか
Oracleデータベースの構造要素
SQL処理の流れ
SQLはどうやって処理されているのか(参照編)
SQLはどうやって処理されているのか(更新編)
Part2 SQLパフォーマンス問題を「解決」する
Chapter 6 SQLパフォーマンス問題の解決アプローチ
チューニングとは
SQLチューニングでは何をするのか
SQLパフォーマンスへの解決アプローチ
Chapter 7 定型的なSQLチューニング
SQL記述の際に最低限守るべきルール
定型的なSQLチューニングとは?
SQLコーディングルールを守る目的は?
性能問題を避けるためのSQLコーディングルール
使用方法やノウハウをもとにしたSQLコーディングルール
可読性や管理性を高めるためのルール
現場の運用ポリシーを反映させるためのルール
実際の現場でのルールはどう使われているか?
定型的なチューニングのポイント
Chapter 8 非定型的なチューニング
定型的なチューニングから“頭を使う”チューニングへ
オプティマイザへのインプット情報とその使われ方
実行計画の確認とそのチューニング
非定型的チューニングのまとめ
Chapter 9 Oracleアーキテクチャに基づいたSQLチューニング
Oracleアーキテクチャの理解が必要な理由
アーキテクチャを意識したSQLチューニングの例
チューニング効果の確認
Oracleアーキテクチャを意識したチューニングのまとめ
Chapter 10 アプリケーションロジックを意識したSQLチューニング
アプリケーションロジックに起因する問題の例
アプリケーション観点での注意ポイント
アプリケーションを意識したチューニングのまとめ
Chapter 11 論理設計におけるSQLチューニング
設計とは
論理設計と物理設計の違い
論理設計の進め方
論理設計のチューニング
論理設計を含めたチューニングのまとめ
Part3 SQLパフォーマンス問題を「予防」する
Chapter 12 パフォーマンス問題を起こさないためには
SQLパフォーマンス問題の「解決」から「予防」へ
SQLのパフォーマンスが発生する要因
SQLパフォーマンス問題を予防するために
予防のための考慮ポイントと各ロールの役割
Chapter 13 計画フェーズ
計画フェーズでの各ロールの役割
計画フェーズにおけるSQLパフォーマンス問題の予防策
プロジェクト全体を通しての対応例
計画フェーズに関するまとめ
Chapter 14 要件定義フェーズ
何ができるかを確認する
要件定義フェーズでの各ロールの役割
要件定義フェーズにおける予防策
要件定義フェーズに関するまとめ
Chapter 15 設計フェーズ
設計フェーズでの考慮ポイント
設計フェーズでの各ロールの役割
設計フェーズにおけるSQLパフォーマンス問題の予防策
設計フェーズに関するまとめ
Chapter 16 開発フェーズ
SQLコーディングルールの目的
開発フェーズにおけるSQLパフォーマンス問題の予防策
開発フェーズに関するまとめ
Chapter 17 テストフェーズ
テストフェーズでよくある問題
テストフェーズでの各ロールの役割
テストフェーズにおけるSQLパフォーマンス問題の予防策
テストフェーズに関するまとめ
Chapter 18 運用フェーズ
運用フェーズでの考慮ポイント
定常監視および定期的な性能分析/傾向分析の必要性
統計情報運用の勘所
運用フェーズに関するまとめ
Chapter 19 実際のプロジェクトでどこまでやるべきか
最低限実施すべきこと
高いパフォーマンス要件が求められる場合
プロジェクトの途中からでもできること
どのプロジェクトでもぜひ取り入れてほしいこと
Part4 「解決」から「予防」へ~パフォーマンス問題を減らすために
Chapter 20 「Database Administrator」から「Database Architect」へ
「解決」から「予防」へ
「DB Administrator」から「DB Architect」へ
DB Architectのスキル
本書のまとめ
Appendix
SQLチューニング案の検討
チューニング対象SQLの特定と効果測定
コラム
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
とし さん
2012-05-12
Oracleで発生する性能問題への基本的な対策を記載した本、前半はSQLやDBへの直接的な対応について記載されており、後半はPJとして体制やチーム間の連携など性能問題をPJ管理上どう扱っていくべきかということが書かれている。ちょっと説明があっさりしているとも感じたが、DBを専門としない担当が予備知識として読んでおくには、ちょうど良い内容かと思う。