構造の実行-SQLプロセス


SQLプリプロセッシング最適化プロセス


1)SQL分類:分類ツリーの生成、構文エラー/syntaxチェック(キーワードが使用できない、キーワードの順序が正しくない、または欠落している)、意味エラー/Semanticチェック(存在しないテーブル列、オブジェクト権限)
2)SQLの最適化:ディスクマネージャは、事前に収集したシステム/オブジェクト統計に基づいて、複数の実行パスを作成/比較し、最も効率的な方法を選択します.
3)低ソースの生成:SQL Optimizerが選択した実行パスを、低ソースジェネレータが担当する実際の実行可能コードまたはプロセスにマッピングします.

SELECT


クライアントSELECTリクエスト>サーバプロセスはShared Poolのライブラリキャッシュをチェックし、実行する予定がある場合はSoft Parting>がない場合は、ファイバマネージャが実行計画を作成します.Hard Parting>
ServerProcessはDB Buffer Cacheを読み込み、Selectセクションに該当するデータがある場合は、直ちにDB Buffer Cacheからデータを読み込み、結果をクライアントに表示します>
そうでない場合、Server Processはデータファイルからデータを読み込み、DB Buffer Cacheにアップロードしてクライアントに表示します.

INSERT


クライアントからINSERTリクエストが送信されました.>サーバ・プロセスは、データベース・バッファにデータを書き込みます.>データの読み込み時に、LGWRはその変更をRedo Log Bufferに書き込む
(システムがハングアップしている場合、DWBnがデータファイルのダウングレード前にコミットされている場合は、アクティブなログファイルを使用してリカバリできます/コミットされていない場合は、Redo Log BufferのUndoを使用してリカバリできます)>
その後、DBWnは、Redo Log Bufferに含まれるコンテンツをコミットするか、特定の期間にLGWRがRedo Log File>に到達すると、すぐにデータファイルに到達するのではなく、チェックポイントが発生したときにすべてのDirtyバッファをデータベースBuffer Cacheに格納します.

バッファキャッシュ

  • Freeバッファ:未使用または変更のコンテンツがディスクに書き込まれ、バッファブロック
  • をいつでも上書きできます.
  • Dirtyバッファ:バッファにキャッシュすると変更されたが、ディスクに書き込まれていないため、データ・ファイル・ブロックに同期する必要があるバッファ・ブロック
  • .
  • Pinnedバッファ:現在アクセスするリードまたはライトバッファ
  • LGWRはRedoログファイルとして記録される。

  • 3秒DBWRプロセスから信号を受信とき
  • .
  • ログバッファが1/3を超えるか、または記録されたRedoレコードが1 MBを超える場合は
  • である.
  • ユーザがコミットまたはロールバックコマンドを発行した場合.
  • 擎天柱提示:擎天柱提示は命令であり、特殊な原因がなければ、そのまま実行し、提示を無視する場合は以下の通りである。

      1. 문법적으로 맞지 않는 힌트
      2. 잘못된 참조사용 : 없는 테이블이나 별칭(Alias)사용, 없는 인덱스명을 지정한경우
      3. 논리적으로 불가능한 액세스경로 
         조인절에 등치(=) 조건이 하나도없는데 해시조건유도
         테이블전체건수 count하는 쿼리에 null을 허용하는 단일컬럼으로 생성한 인덱스를 사용하도록 힌트지정
      4. 의미적으로 맞지 않게 힌트 기술 : 서브쿼리에 unnest와 push_subq를 같이 기술하는등
      5. 옵티마이저에 의해 내부적으로 쿼리가 변환된경우
      6. 버그

    オプティカル(光学式)ドライブのヒント

      1. 힌트안에 인자나열시 콤마를 사용할 수 있지만, 힌트와 힌트 사이에 사용하면안된다.
      2. 테이블을 지정할 때 스키마명까지 명시하면 안된다.
      3. From절 테이블명 옆에 ALIAS를 지정했다면, 힌트에도 반드시 ALIAS를 사용해야 한다.
  • オプティカル(光学式)ドライブのプロンプトタイプ