Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # SQL実践入門
- ## 目的
- - パフォーマンスの良いSQLの書き方、特に大量データを処理するSQLの性能向上の方法を理解すること
- - データベースやストレージを、実行計画を通して覗く事でホワイトボックスにすること
- # 第1章 DBMSのアーキテクチャ
- ## DBMS内の各機能
- ### クエリ評価エンジン
- SQLを解釈し、実行計画(実行プラン)を決定する.
- この実行計画に基づいたデータへのアクセス方法が「アクセスメソッド」.
- プランを立てそれを実行するという重要な機能を担っていて、本書の主題であるパフォーマンスとも非常につながりの深いモジュール.
- ### バッファマネージャ
- バッファというメモリ領域の使い方を管理するモジュール.
- ディスク容量マネージャと連携.
- ### ディスク容量マネージャ
- どこにどのようなデータを保存するかを管理し、それに対する読み出し/書き込みを制御する.
- ### トランザクションマネージャとロックマネージャ
- トランザクション同士の整合性を保つためのモジュール.
- データにロックをかけて処理を待機させる仕事も行う.
- ### リカバリマネージャ
- 定期的にバックアップを取得し、データを復旧するための機能を持つモジュール.
- ---
- SQLのパフォーマンスという観点から見ると、最も重要なのは 「クエリ評価エンジン」 および 「実行計画」
- 次に重要なのは 「バッファマネージャ」
- 「トランザクションマネージャ」 と 「ロックマネージャ」 も重要だが、複数のSQLを同時実行する際のメカニズムのため観点が異なる.
- ## DBMSとバッファ
- ストレージのトレードオフ
- - 容量と永続性をとれば速度が犠牲になり、速度をとれば容量と永続性が犠牲になる
- ### 記憶装置
- HDD
- - DBMSがデータを保存する媒体のほとんどがHDD
- - 容量・コスパの良さなどから選択されている
- メモリ
- - 記憶コストが高く、データベースサーバーの場合でもせいぜい数GB〜数十GB
- - データベース内のデータ全てをメモリに乗せることは原則できない
- **一般的にSQL文の実行時間の大半はストレージに対するI/Oに費やされる**
- バッファやキャッシュは、ユーザとストレージの中間に位置し、データの転送遅延を緩和する.
- 高速アクセス可能なバッファに、どのようなデータをどの程度の期間載せておくかといったことを管理する機能が、DBMSの**バッファマネージャ**.
Add Comment
Please, Sign In to add comment