Oracleのしくみ1
今回から 小田圭二/著 の絵で見てわかるOracleの仕組み アーキテクチャと動作を徹底図解
という本で勉強したことをのせていきます〜
一章
IOとディスクの関係
まずOracleで重視されていることが三つあって
- 並列処理を可能にし、高スループットも実現
- レスポンスを重視
- COMMITされたデータは守る
この三つを守るためにいろんな工夫がされているみたい
OracleはDBMS(データ管理システム)でディスクからデータを読み込み処理をして、ディスクにデータを書き戻すという作業をしている
だからOracleとディスクは切っても切れない関係なんだって
そのディスクはめちゃくちゃ回転速度がはやくて
データを読み書きするために頭出しというのをしないといけないのだけど、これがシーク
で、欲しい情報が回転してくるまで待つのを回転待ち時間という
でもディスクだと時間がかかるし、メモリのほうが断然はやいらしい。ちなみにメモリはCOMMIT前のデータを保持している
データの読み書きの方法にシーケンシャルアクセスというのがあって、これは先頭から間を抜かさずにデータの読み書きをする
フルスキャンのときにメモリにデータがないとシーケンシャルアクセスが発生する
これめっちゃ時間かかるから、メモリにあるインデックスを使うと必要な箇所だけ読めばいいから便利!
でも必要な箇所がディスク上で連続していることはほとんどないからヘッドというのを動かして飛び飛びにアクセスする
これがランダムアクセス
ランダムアクセスはシークと回転待ちに時間をさくから非効率らしい
あとCOMMITされたデータは守るっていうところ
Oracleのプロセスが異常終了してもデータを失ってはいけないからデータ変更後にCOMMITを入力するとOracleはデータをディスクに書き出している
ここを高速に処理するための仕組みもあるけどそれは後々!
こんな感じかな〜
本は詳しい絵も載っててわかりやすかったし内容ももっと詳しく書いてありました〜おすすめ◎