SQL処理の流れ

<サーバプロセスとは>
サーバプロセスとはSQLを受け取り処理をするプロセスのこと。
ユーザからの接続要求によって起動し、ログアウトすると終了する

<SELETCT文を発行したら>

  1. ユーザプロセスがSQL文をサーバプロセスに渡す
  2. サーバプロセスは共有プールの情報を使用してSQL文を解析する
  3. サーバプロセスは要求されたデータがデータベースバッファキャッシュにあるか調べる
  4. データがなければデータファイルからデータベースバッファキャッシュに読み込む
  5. サーバプロセスはユーザプロセスにデータを返す

<UPDATEを実行したら(1〜4まではSELECT同様)>

  1. 変更前と変更後の値をREDOログバッファに書き込む
  2. データベースバッファキャッシュ上にUNDOデータが生成される
  3. UPDATE対象となるデータブロックがデータベースバッファキャッシュ上で変更される
  4. コミットするとLGWRプロセスがREDOログバッファの値をREDOログファイルに書き込む
  5. 変更内容はDBWnプロセスによってデータベースバッファキャッシュからデータファイルに書き出される