最初のユーザー接続のシナリオでのデータベース非アクティブ化動作

ユーザーが最初に接続するときに、データベースは活動化されます。 単一パーティション環境では、データベースがメモリーにロードされ、最後のユーザーが切断するまでこの状態のままになります。 同じ動作が複数パーティション環境にも適用されます。この場合、最初のユーザー接続によってデータベースが、そのデータベースのローカル・パーティションとカタログ・パーティションの両方で活動化されます。

最後のユーザーが切断すると、データベースのシャットダウンが、ローカル・パーティションと、このユーザーがそのデータベースにとって最後のアクティブ・ユーザー接続であるリモート・パーティションの両方で行われます。 最初の接続と最後の切断に基づいた、このデータベースの活動化および非アクティブ化は、暗黙的活動化 とも呼ばれています。 活動化は最初のユーザー接続によって開始され、ユーザーが CONNECT RESET (これにより、データベースが暗黙的に非アクティブ化されるようになる) を実行するまで (またはユーザーが接続を終了またはドロップするまで)、活動化は有効なままです。

データベースをメモリーにロードするプロセスは、これに大きく関係しています。 これは、バッファー・プールを含むすべてのデータベース・コンポーネントの初期化を包含しており、特にパフォーマンス重視の環境では最小限にとどめなければならないタイプの処理です。 この動作は、複数パーティション環境で特に重要なものです。その環境では、1 つのデータベース・パーティションから発行された照会が、ターゲット・データ・セットの一部を含む他のパーティションに達します。 これらのデータベース・パーティションは、ユーザー・アプリケーションの接続および切断動作に応じて、活動化または非アクティブ化されます。 ユーザーが、初めてデータベース・パーティションに達する照会を発行するとき、照会はそのパーティションを最初に活動化するコストを想定します。 そのユーザーが切断するとき、それに先だって他の接続がそのリモート・パーティションに対して確立されていなかった場合、データベースは非アクティブ化されます。 次の着信照会がそのリモート・パーティションにアクセスする必要がある場合、そのパーティション上のデータベースは、最初に活動化される必要があります。 このコストは、データベース (または該当する場合には、データベース・パーティション) の活動化および非アクティブ化ごとに生じます。

この動作の唯一の例外は、ユーザーが ACTIVATE DATABASE コマンドを発行してデータベースを明示的にアクティブ化することを選択した場合です。 このコマンドが正常に完了した後、最後のユーザーが切断したとしても、データベースはメモリーに残っています。 これは、単一パーティション環境と複数パーティション環境の両方に適用されます。 そのようなデータベースを非アクティブ化するには、DEACTIVATE DATABASE コマンドを発行してください。 どちらのコマンドも有効範囲内でグローバルです。つまり、該当する場合には、すべてのデータベース・パーティション上でデータベースを活動化または非アクティブ化します。 データベースをメモリーにロードするという処理主体の性質を考慮して、データベース接続を介した暗黙的なアクティブ化に依存するのではなく、 ACTIVATE DATABASE コマンドを使用してデータベースを明示的にアクティブ化することを検討してください。