ここでは、Oracle SGA (System Global Area) の設定に関する一般的な規則と、Oracle ユーザーの PGA (Private Global Area) のサイズに影響するメモリ構造について説明します。SGA は、Oracle によって割り当てられる共有メモリのブロックであり、すべてのセッションで共有されます。SGA の詳細については、使用している Oracle リリースの Oracle のドキュメントをご参照ください。
- SGA をスワップさせない
SGA のサイズがサーバー上の物理メモリ (RAM) サイズの 2/3 を超えないようにしてください。SGA およびサーバー上のすべてのアクティブ プロセスに必要なリソースは、仮想メモリの許容範囲内でなければなりません。
- 過度のページングを回避する
オペレーティング システム ツール (UNIX システムの vmstat、Windows のタスク マネージャー) を使用して、ページングが過度に発生していないことを確認してください。SGA のサイズが大きすぎると、ページングが頻発することがあります。
- 十分な仮想メモリを設定する
Oracle では原則として、スワップ領域を物理 RAM の 3 〜 4 倍以上に設定することを推奨しています。UNIX のスワップ ファイルまたは Windows のページ ファイルに必要なサイズは、アクティブな接続の数に依存します。
- 表領域の割り当てを明示的に設定して、利用可能な格納領域を使い果たしてしまうことを避ける
sde ユーザー、ユーザースキーマに格納されたジオデータベースの所有者、データの所有者など、Oracle オブジェクトを作成する権限を持つユーザーは、2 つの方法のどちらかを使用して格納領域にアクセスすることができます。すなわち、UNLIMITED TABLESPACE システム権限を行使する方法と、表領域の明示的な割り当て制限を受ける方法です。
UNLIMITED TABLESPACE 権限では、Oracle が管理する SYSTEM 表領域および SYSAUX 表領域を含め、データベース内のすべての表領域で、領域を無制限に使用することができます。これにより、エンド ユーザーが故意にまたは誤って、利用可能な格納領域をすべて使い果たしてしまい、Oracle インスタンスをクラッシュさせる可能性もあります。このため、この強力なシステム権限はデータベース管理者にのみ許可するのが得策です。
他のすべてのユーザーについて Oracle オブジェクトの作成を制御できるようにするには、そのユーザーに 1 つ以上の表領域に対する割り当て制限を設定します。たとえば、ユーザーが GIS_ADMIN データの所有者である場合は、GIS_DATA 表領域と GIS_INDEX 表領域に割り当て制限を設定し、SYSTEM 表領域と SYSAUX 表領域には割り当てを付与しないようにします。そうすれば、データ所有者がテーブルとインデックスを作成できる場所を制御できるようになり、必要に応じて、それらのオブジェクトに使用できる領域を制御することもできます。
通常、データベース管理者は、sde マスター ジオデータベースのユーザースキーマ ジオデータベース所有者およびデータ所有者の各表領域に対して、無制限に割り当てるか、割り当て制限を設定しません。これにより、データベース管理者はデータが物理的に格納される場所を制御し (データの保護を強化するためにミラー化されたディスク アレイに格納するなど)、システム データおよび他のプロジェクトやアプリケーションのデータとは別の論理コンテナーにデータを分離することができます。割り当てを無制限にすると、データ所有者は自分がアクセスできる表領域に必要なだけ領域を割り当てることが可能になります。通常、これは適切な措置です。データまたはジオデータベース所有者アカウントを使用できるユーザーは、一般に、必要なトレーニングや経験を積んでおり、GIS データの格納要件をよく知っていることが多いからです。
データを編集するユーザーと表示するユーザーに (ジオプロセシング操作の出力など) 独自のジオデータベース オブジェクトの作成が許可される環境では、書き込みアクセスの権限を持つユーザーに対して表領域の割り当てを制限することが得策です。たとえば、GIS_DATA 表領域で、データを表示するユーザーに 100MB の割り当て制限、データを編集するユーザーに 500MB の割り当て制限、データの所有者に無制限の割り当てを設定することができます。割り当て制限の設定は、データ プロセスとビジネス プロセスの特定の要件に合わせてカスタマイズする必要があります。