データベースの限界性能を引き出す技術 ~NoSQLに飛びつく前に知っておきたい原理と最新テクニック
- 山崎泰史,武吉佑祐 著
 - 定価
 - 2,948円(本体2,680円+税10%)
 - 発売日
 - 2014.3.18[在庫なし]
 - 判型
 - A5
 - 頁数
 - 224ページ
 - ISBN
 - 978-4-7741-6364-2 978-4-7741-6394-9
 
サポート情報
概要
「RDBMSだと大規模データをうまく扱えない」といわれ、NoSQLのような代替技術が生まれてきていますが、本当でしょうか?
ビッグデータ時代でもシステムの中核として依然重要なRDBMSの力を100%発揮できれば、開発や運用はもっとラクになります。
本書では、ストレージ、CPU、ネットワークといったあらゆる点から「なぜ、RDBMSは遅くなるのか?」と「どうすれば、性能を最大限引き出せるのか?」を徹底解説。Oracle Exadataなどの最新動向もふまえて、RDBMSの限界を引き出す最新常識を教えます。
こんな方にオススメ
- 大規模データを扱う(ことに興味がある)方
 
目次
第1章 なぜ、今「RDBMSはダメだ」と言われるのか
1-1 昔はRDBMSがシステムの中心だった
- RDBMSへの突っ込みが増えた
 - ハードウェアの進化を活用するには
 - コラム どこからが「大規模システム」か?
 
1-2 DBに求められる役割と問題点とは
- データの保管庫
 - 少量データへ多数のアクセス手段を提供する
 - 大量データへ少数のアクセス手段を提供する
 - バッチで大量データを一括処理する
 - コラム ビッグサーバ、クラスタ化、一周してビッグサーバ時代に
 
1-3 アーキテクチャのすみわけがベストではない
- 複数ソフトウェアを組み合わせた時のデメリットとは
 - RDBMSにソフトウェアを追加する好例とは
 
第2章 RDBMSのボトルネックと基本的なチューニングを知る
2-1 ボトルネックとは
- ボトルネックの意味を知る
 - RDBMSにおけるボトルネックとは
 
2-2 レスポンスとスループットを正しく知る
- レスポンスとスループットとは
 - レスポンスとスループットを向上させるには
 
2-3 ディスクI/Oボトルネックを解決する
- ディスクI/Oボトルネックとは
 - ディスクI/Oボトルネックをチューニングする
 
2-4 CPUボトルネックを解決するには
- CPUボトルネックとは
 - CPUボトルネックをチューニングする
 - コラム SPECintとは
 
2-5 ネットワークボトルネックを解決するには
- ネットワークボトルネックとは
 - ネットワークボトルネックをチューニングする
 - コラム 光通信が電気通信より速いのは、光が電気より伝送速度が速いからではない
 
2-6 共有リソースの競合ボトルネックとは
- 行ロックがボトルネックになる
 - リソース競合を減らすには
 
第3章 大規模システムではI/Oボトルネックが大半を占めている
3-1 I/Oボトルネックはなぜ発生するのか
- HDDは相対的に遅い
 - 可用性にも配慮する
 
3-2 I/Oボトルネックが発生しにくいデータベースを設計する
- より高速なディスクを使う
 - データベースから見えるディスクの本数を増やす
 - データベースサーバとストレージ間を広帯域のネットワークで結ぶ
 - コラム データを守るRAIDとRAIN
 
3-3 I/Oボトルネックの分析と対策
- AWRレポートでI/Oボトルネックを分析する
 - I/Oボトルネックの影響を受けているSQLを特定する
 - バッファキャッシュを拡大する
 - iostatでI/Oボトルネックを分析する
 - コラム I/O関連の待機イベントは悪者にされがち
 
3-4 一歩進んだI/Oボトルネック解消法
- 読み込みリクエスト数を減らす
 - 書き込みリクエスト数の減らし方
 
3-5 Oracle Exadataが実装しているI/O高速化機能を知る
- Exadata Smart Scanとは
 - Exadata Storage Indexとは
 - ストレージとストレージサーバの違い
 
第4章 CPUボトルネックは使用率だけでは判断できない
4-1 CPU待ちはなぜ発生するのか
- ディスクI/Oボトルネックの次に待っているもの
 - CPUボトルネックの本質を探る
 - コラム CPU使用率の監視は必要か
 
4-2 CPU使用率が低すぎる原因とは
- DB負荷が低い
 - 他レイヤでのボトルネック
 - 特定コアでのボトルネック
 - コラム 草食系インフラ屋
 
4-3 RDBMSでの並列化のすすめ
- 並列化を実装する
 - 並列化で生じる課題とは
 - コラム クロック数 vs コア数
 
4-4 CPU使用率が高すぎる時には
- ボトルネックが存在しない
 - 特定SQLのCPU使用率が高い時には
 - 並列度が高すぎる
 - コラム 待機イベントだけ見ていてもわからない
 
4-5 リソースをマネジメントする
- リソース・マネジメントのすすめ
 - リソース・マネジメントを実装する
 - コラム CPUボトルネックは説明しやすい
 
第5章 ネットワークボトルネックの傾向と対策
5-1 ネットワークボトルネックはなぜ発生するのか
- ネットワークボトルネックとは
 - ネットワークボトルネックの発生パターンは2つある
 
5-2 ネットワークボトルネックを発見するには
- 待機イベント発生の本当の理由を知る
 - パフォーマンス統計を活用する
 - UNIX系OSはコマンドで調べられる
 - 分析の手順
 - ラウンドトリップがボトルネックになっている時には
 
5-3 ネットワークボトルネックを改善する
- 枯渇したネットワーク帯域を改善するには
 - 多すぎるラウンドトリップによるボトルネックを改善するには
 
第6章 リソース不足以外にもボトルネックが存在する
6-1 手元のリソースを使い切れていますか?
- リソースを使い切れないパターンとは
 - ACIDとは
 - BASEとは
 - ACIDとBASEの違いを知る
 
6-2 ロック待ちを解消するには
- 業務データのロック待ちとなるケース
 - 行ロックによる待機を解消する
 - 同一ブロック更新での待機を解消する
 - 表データの分け方を考える
 - コラム ダミーデータに注意しよう
 
6-3 データベース内部でもロック待ちが起こる
- 採番処理での待機を解消する
 - 同じSQLの実行回数が増えることによる待機
 - コラム DBは統合すべきか? 分割すべきか?
 
6-4 チューニングが他レイヤに与える影響
- 圧縮による影響を知る
 - 高速ディスクを利用すればいいのか
 - メモリを活用する
 - ボトルネックは移動する
 - チューニングという旅の終わりに
 
Appendix RDBMSのアーキテクチャ超概要
A-1 Oracle Databaseのアーキテクチャを知る
- 記憶域を構成する要素とは
 - インスタンスの構成要素とは
 - SGAの構成とは
 - バックグラウンドプロセスのおもな役割を知る
 - PGAの役割とは
 
A-2 SQLの処理フローを見る
- ボトルネック発生のメカニズムにも関連する
 - SELECT文の処理フローを知る
 
プロフィール
山崎泰史
はじめに、1章、4章、6章を担当。
日本オラクル株式会社 テクノロジーコンサルティング統括本部 所属。
横浜生まれのテキサス育ち。ITインフラが大好き。Oracle Database一筋。最近は専らExadata。
ITに関わる人々が少しでも早く家に帰れるように、ITインフラに住まう魑魅魍魎と日々闘っている。
共著に『絵で見てわかるITインフラの仕組み』(翔泳社)がある。
武吉佑祐
2章、3章、5章、Appendixを担当。
日本オラクル株式会社 テクノロジーコンサルティング統括本部 所属。
福岡県出身。2009年、新卒として日本オラクル入社。
入社以来、おもにOracle Exadataの設計/構築/運用支援プロジェクトを手がけ、さまざまな業界のお客様にExadataのスピードを実感していただくべく、日々奮闘中。
趣味はゴルフ。シングルプレイヤーを目指して、日々奮闘中。
共著に『即戦力のOracle管理術 ~仕組みからわかる効率的管理のノウハウ』(技術評論社)がある。
著者の一言
「RDBMS」と聞くと、どういうイメージが浮かびますか?
「堅牢」「一貫性がある」「安心」といったよいイメージもあれば、「ブラックボックス」「レガシー」「ボトルネックになりやすい」といった悪いイメージもあるかもしれません。
リレーショナルデータベース管理システム(RDBMS)は、比較的古くから、システムの中核で利用されてきました。近年、モバイル端末をはじめとしたアクセス手段の増加によって、システム規模の大型化が進んでいます。また、「ビッグデータ」というキーワードで言われるように、これまで見たことがないほどの大規模データを扱うようになりました。
大規模化に伴い、システムの中心にいるRDBMSにて、ボトルネックが目立ってきています。RDBMSの弱点を補うような、さまざまな代替技術も生まれています。
今後は、RDBMSではなく、こういった代替技術を積極的に採用すべきなのでしょうか? RDBMSはオワコンなのでしょうか?
でも、すべてのことがRDBMSでできたら、開発や運用はきっと楽になると思いませんか?
本書では、RDBMS で大規模トランザクション・大規模データを扱う際に、ボトルネックとなるポイントやその理由、改善案を説明していきます。最初からRDBMS以外の選択肢を考えるのではなく、まずはRDBMSで対応するためのアイディアを示します。RDBMSですべてに対応できるかどうか、判断するための材料になれば幸いです。RDBMS の適用範囲を限界まで広げるために、皆さんのお手伝いをさせてください。
なお、本書では「Oracle Database」や、ハードウェアと組み合わせた統合型製品である「Oracle Exadata」を例に説明します。具体的なコマンド例や実装例も出てきます。しかし、根本的な考え方は、すべてのRDBMS共通であることを念頭に置いて書いていますので、普段の業務でOracle Database以外のものを扱っている方にも、ぜひ読んでいただきたいと思います。
進化しているハードウェアをうまく活用し、RDBMSのさまざまな機能も利用することで、RDBMSの適用範囲を広げ、システムの複雑性を下げ、開発・運用しやすいシステムを作り、みんながハッピーになることが願いです。RDBMSをあきらめないために、一緒に考えていきましょう。
それでは、よろしくお願いします!