ユーザー・プロセス
ユーザー・プロセスは、クライアントマシン上で動作するプロセスのことで、アプリケーションや開発ツールを起動したときに生成されます。たとえば、ユーザー・プロセスにはSQL*Plus、Oracle
Developer、JDeveloper、Visual Basicなどのツールや、そのツールで開発されたアプリケーションなどがあります。そして、ユーザー・プロセスからはOracleデータベースに対するコールをおこないます。区別がしづらいという方には、クライアント・アプリケーションがユーザー・プロセスにあたる、と考えればわかりやすいかもしれません。
サーバー・プロセス
ユーザー・プロセスがクライアントで動作するのに対し、サーバー・プロセスはサーバー上で動作します(名前どおりですね)。サーバー・プロセスは、ユーザー・プロセスが生成したコールを処理し、結果を返す役割をもっています。そして、サーバー・プロセスはプログラム・グローバル領域(PGA)という専用のメモリ領域をもっています。PGAには以下の領域・情報が含まれます。
- ソート領域:データのソート処理に使用
- セッション情報:セッションに対するユーザーの権限に関する情報
- カーソルの状態:セッションで使用しているさまざまなカーソルの処理段階を示す
- スタック空間:セッション変数が入っている空間
PGAはサーバー・プロセス生成時に割り当てられ、プロセス終了時に解除されます。
また、サーバー構成には1つのサーバー・プロセスが1つのユーザー・プロセスを処理する「専用サーバー構成」と、1つのサーバー・プロセスが複数のユーザー・プロセスを処理する「共有サーバー構成」とがあります。共有サーバー構成は、多数のユーザーによって使われる更新系のデータベースの場合、メモリなどのリソースを有効利用できるという利点がありますが、チューニングに気をつけなければなりません。最近では、ハードウェアの進化によりリソースに比較的余裕があることが多いので、専用サーバーを使用するのが一般的です。
インスタンス
Oracleの処理の中心部分をインスタンスといいます。インスタンスは、システム・グローバル領域(SGA)と呼ばれるメモリ領域とバックグラウンド・プロセスからなります。通常「Oracleを起動する」という場合「Oracleのインスタンスを起動する」というのとほぼ同義です。ではインスタンスの個々のコンポーネントについて説明しましょう。 |