Guest User

Untitled

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