照会実行を管理するためのコンピュータ実装方法であって、要求元エンティティから照会を受信すること、以前に処理された照会からのメモリ使用量履歴データに少なくとも部分的に基づいて、前記受信した照会を実行するために推定メモリ使用量値を計算すること、前記推定メモリ使用量値と所定のメモリしきい値量とを比較することにより、前記照会の実行がメモリ消費条件を満たすものであるかどうかを判別すること、および前記照会の実行が前記メモリ消費条件を満たさないものと判別すると、さらに1つまたは複数のコンピュータプロセッサの動作によって、前記照会の実行で使用されるメモリの量を削減するように前記照会を最適化すること、を含む、コンピュータ実装方法。前記照会を最適化すると、照会結果の第1のセットを生成するために、前記最適化された照会を実行すること、および前記照会結果の第1のセットを前記要求側エンティティに戻すこと、ならびに前記照会の実行が前記メモリ消費条件を満たすものと判別すると、照会結果の第2のセットを生成するために、前記照会を実行すること、および前記照会結果の第2のセットを前記要求側エンティティに戻すこと、をさらに含む、請求項1に記載のコンピュータ実装方法。前記照会の最適化が、前記照会の実行に使用されるメモリ圧縮量を調整することをさらに含む、請求項1に記載のコンピュータ実装方法。前記照会の最適化が、前記照会の実行に関してメモリ圧縮が実行可能であるかどうかを判別すること、およびメモリ圧縮が実行不可であると判別すると、少なくとも前記受信した照会の前記実行に関してメモリ圧縮を実行可能にすること、をさらに含む、請求項3に記載のコンピュータ実装方法。前記照会の最適化が、前記受信した照会の実行に関連付けられた圧縮率を、第1の圧縮率から第2の圧縮率へと上げることであって、前記第2の圧縮率は、前記照会の実行に関連付けられたデータを前記第1の圧縮率に対してさらに圧縮すべきであることを指定する、上げること、をさらに含む、請求項3に記載のコンピュータ実装方法。前記照会の実行においてどの程度の遅延が受け入れ可能であるかを記述する、前記受信した照会に関連付けられた優先度値を決定すること、をさらに含み、前記照会の実行が前記メモリ消費を満たすかどうかを判別することが、前記受信した照会に関連付けられた前記決定された優先度値にさらに基づくものである、請求項1に記載のコンピュータ実装方法。前記照会の実行が前記メモリ消費条件を満たすかどうかを判別することが、前記所定のメモリしきい値量と前記受信した照会に関連付けられた前記決定された優先度値との間の、相対的優先度にさらに基づくものである、請求項6に記載のコンピュータ実装方法。前記照会の最適化が、前記受信した照会の実行に関する複数の照会実行プランを決定すること、前記複数の照会実行プランにおける各照会実行プランに関して、推定メモリ使用量値を計算すること、および前記照会の実行で使用するための特定の照会実行プランを、前記特定の照会実行プランに関する前記推定メモリ使用量値に基づいて選択すること、をさらに含む、請求項1に記載のコンピュータ実装方法。実際のメモリ使用量値を決定するために前記最適化された照会の前記実行を監視すること、および前記実際のメモリ使用量値が前記所定のメモリしきい値量を超えるものと判別すると、前記照会の実行で使用される前記メモリの量を削減するように前記照会の実行で使用されるメモリ圧縮量を調整すること、をさらに含む、請求項1に記載のコンピュータ実装方法。照会実行を管理するためのコンピュータプログラムであって、具体化されたコンピュータ読み取り可能プログラムコードを有するコンピュータ読み取り可能ストレージ媒体を備え、前記コンピュータ読み取り可能プログラムコードが、要求元エンティティから照会を受信するためのコンピュータ読み取り可能プログラムコードと、以前に処理された照会からのメモリ使用量履歴データに少なくとも部分的に基づいて、前記受信した照会を実行するために推定メモリ使用量値を計算するためのコンピュータ読み取り可能プログラムコードと、前記推定メモリ使用量値と所定のメモリしきい値量とを比較することにより、前記照会の実行がメモリ消費条件を満たすものであるかどうかを判別するためのコンピュータ読み取り可能プログラムコードと、前記照会の実行が前記メモリ消費条件を満たさないものと判別すると、前記照会の実行で使用されるメモリの量を削減するように前記照会を最適化するためのコンピュータ読み取り可能プログラムコードと、を含む、コンピュータプログラム。前記照会を最適化すると、照会結果の第1のセットを生成するために、前記最適化された照会を実行するため、および前記照会結果の第1のセットを前記要求側エンティティに戻すため、ならびに前記照会の実行が前記メモリ消費条件を満たすものと判別すると、照会結果の第2のセットを生成するために、前記照会を実行するため、および前記照会結果の第2のセットを前記要求側エンティティに戻すための、コンピュータ読み取り可能プログラムコードをさらに含む、請求項10に記載のコンピュータプログラム。前記照会を最適化するための前記コンピュータ読み取り可能プログラムコードが、前記照会の実行に使用されるメモリ圧縮量を調整するためのコンピュータ読み取り可能プログラムコードをさらに含む、請求項10に記載のコンピュータプログラム。前記照会を最適化するための前記コンピュータ読み取り可能プログラムコードが、前記照会の実行に関してメモリ圧縮が実行可能であるかどうかを判別するためのコンピュータ読み取り可能プログラムコードと、メモリ圧縮が実行不可であると判別すると、少なくとも前記受信した照会の前記実行に関してメモリ圧縮を実行可能にするためのコンピュータ読み取り可能プログラムコードと、をさらに含む、請求項12に記載のコンピュータプログラム。前記照会を最適化するための前記コンピュータ読み取り可能プログラムコードが、前記受信した照会の実行に関連付けられた圧縮率を、第1の圧縮率から第2の圧縮率へと上げるためのコンピュータ読み取り可能プログラムコードであって、前記第2の圧縮率は、前記照会の実行に関連付けられたデータを前記第1の圧縮率に対してさらに圧縮すべきであることを指定する、コンピュータ読み取り可能プログラムコードを、さらに含む、請求項12に記載のコンピュータプログラム。前記照会の実行においてどの程度の遅延が受け入れ可能であるかを記述する、前記受信した照会に関連付けられた優先度値を決定するためのコンピュータ読み取り可能プログラムコードをさらに含み、前記照会の実行が前記メモリ消費を満たすかどうかを判別するための前記コンピュータ読み取り可能プログラムコードが、前記受信した照会に関連付けられた前記決定された優先度値と、前記所定のメモリしきい値量と前記受信した照会に関連付けられた前記決定された優先度値との間の、相対的優先度とに、さらに基づくものである、請求項10に記載のコンピュータプログラム。前記照会を最適化するための前記コンピュータ読み取り可能プログラムコードが、前記受信した照会の実行に関する複数の照会実行プランを決定するためのコンピュータ読み取り可能プログラムコードと、前記複数の照会実行プランにおける各照会実行プランに関して、推定メモリ使用量値を計算するためのコンピュータ読み取り可能プログラムコードと前記照会の実行で使用するための特定の照会実行プランを、前記特定の照会実行プランに関する前記推定メモリ使用量値に基づいて選択するためのコンピュータ読み取り可能プログラムコードと、をさらに含む、請求項10に記載のコンピュータプログラム。実際のメモリ使用量値を決定するために前記最適化された照会の前記実行を監視するためのコンピュータ読み取り可能プログラムコードと前記実際のメモリ使用量値が前記所定のメモリしきい値量を超えるものと判別すると、前記照会の実行で使用される前記メモリの量を削減するように前記照会の実行で使用されるメモリ圧縮量を調整するためのコンピュータ読み取り可能プログラムコードと、をさらに含む、請求項10に記載のコンピュータプログラム。コンピュータプロセッサと、前記コンピュータプロセッサ上で実行された場合、要求元エンティティから照会を受信すること、以前に処理された照会からのメモリ使用量履歴データに少なくとも部分的に基づいて、前記受信した照会を実行するために推定メモリ使用量値を計算すること、前記推定メモリ使用量値と所定のメモリしきい値量とを比較することにより、前記照会の実行がメモリ消費条件を満たすものであるかどうかを判別すること、および前記照会の実行が前記メモリ消費条件を満たさないものと判別すると、さらに1つまたは複数のコンピュータプロセッサの動作によって、前記照会の実行で使用されるメモリの量を削減するように前記照会を最適化すること、を含む、照会実行を管理するための動作を実行する、プログラムを含むメモリと、を備える、システム。前記動作が、前記照会を最適化すると、照会結果の第1のセットを生成するために、前記最適化された照会を実行すること、および前記照会結果の第1のセットを前記要求側エンティティに戻すこと、ならびに前記照会の実行が前記メモリ消費条件を満たすものと判別すると、照会結果の第2のセットを生成するために、前記照会を実行すること、および前記照会結果の第2のセットを前記要求側エンティティに戻すこと、をさらに含む、請求項18に記載のシステム。前記照会の最適化が、前記照会の実行に使用されるメモリ圧縮量を調整することをさらに含む、請求項19に記載のシステム。前記照会の最適化が、前記照会の実行に関してメモリ圧縮が実行可能であるかどうかを判別すること、およびメモリ圧縮が実行不可であると判別すると、少なくとも前記受信した照会の前記実行に関してメモリ圧縮を実行可能にすること、をさらに含む、請求項20に記載のシステム。前記照会の最適化が、前記受信した照会の実行に関連付けられた圧縮率を、第1の圧縮率から第2の圧縮率へと上げることであって、前記第2の圧縮率は、前記照会の実行に関連付けられたデータを前記第1の圧縮率に対してさらに圧縮すべきであることを指定する、上げること、をさらに含む、請求項20に記載のシステム。前記動作が、前記照会の実行においてどの程度の遅延が受け入れ可能であるかを記述する、前記受信した照会に関連付けられた優先度値を決定すること、をさらに含み、前記照会の実行が前記メモリ消費を満たすかどうかを判別することが、前記受信した照会に関連付けられた前記決定された優先度値と、前記所定のメモリしきい値量と前記受信した照会に関連付けられた前記決定された優先度値との間の、相対的優先度とに、さらに基づくものである、請求項18に記載のシステム。前記照会の最適化が、前記受信した照会の実行に関する複数の照会実行プランを決定すること、前記複数の照会実行プランにおける各照会実行プランに関して、推定メモリ使用量値を計算すること、および前記照会の実行で使用するための特定の照会実行プランを、前記特定の照会実行プランに関する前記推定メモリ使用量値に基づいて選択すること、をさらに含む、請求項18に記載のシステム。前記動作が、実際のメモリ使用量値を決定するために前記最適化された照会の前記実行を監視すること、および前記実際のメモリ使用量値が前記所定のメモリしきい値量を超えるものと判別すると、前記照会の実行で使用される前記メモリの量を削減するように前記照会の実行で使用されるメモリ圧縮量を調整すること、をさらに含む、請求項18に記載のシステム。データベースのサイズおよび作業負荷が大きくなるにつれて、特定の照会または要求は、実行するためにかなりの時間がかかる可能性がある。したがってデータベース管理者は、データベースシステム上のメモリがどのように使用されるかを制御することを望む場合がある。本発明の諸実施形態は、照会実行を管理するための方法、製品、およびシステムを提供する。この方法、製品、およびシステムは、要求元エンティティから照会を受信することを含む。方法、製品、およびシステムは、照会を受信すると、受信した照会を実行するための推定メモリ使用量値を計算することを含む。推定メモリ使用量値は、以前に処理された照会からのメモリ使用量履歴データに少なくとも部分的に基づいて計算される。加えて、方法、製品、およびシステムは、推定メモリ使用量値と所定のメモリしきい値量とを比較することにより、照会の実行がメモリ消費条件を満たすものであるかどうかを決定することを含む。方法、製品、およびシステムは、照会の実行がメモリ消費条件を満たさないものと決定すると、照会の実行で使用されるメモリの量を削減するように照会を最適化することを含む。前述の諸態様が達成され、詳細に理解できるように、上記で簡単に概説した本発明について、添付の図面を参照しながらさらに具体的に説明する。しかしながら、添付の図面は、本発明の典型的な諸実施形態を単に例示するものであるため、その範囲を制限するものとはみなされず、本発明について、他の等しく効果的な諸実施形態を認めることが可能であることに留意されたい。多くのコンピュータの有する、内部でプログラムを実行するためのランダムアクセスメモリRAMの量が限定されていることから、これらの限定されたリソースが効果的に使用されることを保証するためには、適切なメモリ管理が重要である。そのため、データベースシステムでは、データベース管理者が、実行時に特定の照会が消費できるメモリの量を制限することを望む可能性がある。すなわち、特定の照会の実行が大量のシステムメモリを消費し、そのシステム上での他の照会およびタスクの実行を妨げる場合、データベース管理者は、その照会の実行を拒否することを望む可能性がある。こうした拒否は確定的たとえば、要求側エンティティに対して、照会の処理が拒否されたことを説明するメッセージが戻される場合があるであるとするか、または、実行が他の時点まで遅延されるたとえば、システムリソースがアイドル状態になると、システムは照会を処理できるものとすることができる。これにより、単一のデータベース照会がシステムのリソースを独占できないことが保証される。コンピュータのメモリリソースは固定されている可能性があるが、メモリリソースを効果的に増加させるための技法の1つは、内部に格納されているデータを圧縮することによるものである。たとえば、ある特定のファイルが100メガバイトのストレージサイズを有すると想定する。この特定ファイルがシステムメモリに読み取られた場合、メモリ内の100メガバイト容量を消費することになるが、特定ファイルが50の圧縮率で圧縮された場合、圧縮ファイルはメモリ内の50メガバイト容量のみを消費することになる。こうしたメモリ圧縮技法の一例が、インターナショナルビジネスマシーンズ社IBMによるPOWER7TMプラットフォームで使用可能な、ActiveMemoryTMExpansionコンポーネントである。こうした技法は、圧縮データを使用する要求を処理するのに必要な時間が増える可能性はあるが、データの圧縮および圧縮解除に追加の処理リソースが使用されるため、多くの場合、メモリ容量における利得が処理コストを上回る可能性がある。本発明の諸実施形態は、要求側エンティティからの処理に関する照会を受信し、この照会の受信に応答して、照会を実行するための推定メモリ使用量値を計算することができる。推定されたメモリ使用量値は、通常、照会の実行に使用されることになるおおよそのシステムメモリの量を反映する。さらに諸実施形態は、以前の照会の処理から収集されたメモリ使用量履歴データを使用して、この値を推定することができる。次に諸実施形態は、推定メモリ使用量値と所定のメモリしきい値量とを比較することによって、受信した照会を処理するかどうかを決定することができる。推定メモリ使用量値が所定のしきい値量を超えるものと決定すると、諸実施形態は、照会の実行で使用されるメモリ量を削減するように照会を最適化することができる。一実施形態では、最適化は、照会の処理で使用されるメモリ圧縮量を調整することを含む。他の実施形態では、照会に関する複数の実行プランが生成され、それぞれの実行プランについて推定メモリ使用量値が計算される。次に、選択された実行プランに関するそれぞれの推定メモリ使用量値に少なくとも部分的に基づいて、照会の実行で使用する実行プランが選択される。照会が最適化されると、照会が実行されて照会結果が生成され、その後これが要求側エンティティに戻されることが可能である。以下で、本発明の諸実施形態について言及する。しかしながら、本発明が特定の説明される諸実施形態に限定されるものではないことを理解されたい。代わって、様々な実施形態に関するか否かに関わらず、本発明の実装および実施のための以下の特徴および要素の任意の組み合わせが企図される。さらに、本発明の諸実施形態は、他の可能なソリューション全体、あるいは従来技術全体、またはその両方にわたって、利点を達成できるが、所与の実施形態によって特定の利点が達成されるか否かが本発明を制限することはない。したがって、以下の諸々の態様、特徴、実施形態、および利点は単なる例示的なものであり、特許請求の範囲に明示されている場合を除き、添付の特許請求の範囲の要素または制限とはみなされない。同様に、本発明という言及は、本明細書で開示されたいかなる発明的主題の概括として解釈されるべきではなく、特許請求の範囲に明示されている場合を除き、添付の特許請求の範囲要素または制限とみなされるべきでもない。当業者であれば理解されるように、本発明の諸態様は、システム、方法、またはコンピュータプログラム製品として具体化することができる。したがって、本発明の諸態様は、完全にハードウェア実施形態、完全にソフトウェア実施形態ファームウェア、常駐ソフトウェア、マイクロコードなどを含む、あるいは、本明細書ではすべてを全体として回路、モジュール、またはシステムと呼ぶことが可能なソフトウェアおよびハードウェアの態様を組み合わせた諸実施形態の形を取ることができる。さらに、本発明の諸態様は、具体化されたコンピュータ読み取り可能プログラムコードを有する、1つまたは複数のコンピュータ読み取り可能媒体で具体化される、コンピュータプログラム製品の形を取ることができる。1つまたは複数のコンピュータ読み取り可能媒体の任意の組み合わせが使用可能である。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能ストレージ媒体とすることができる。たとえば、コンピュータ読み取り可能ストレージ媒体は、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいは上記の任意の好適な組み合わせとすることができるが、これらに限定されるものではない。コンピュータ読み取り可能ストレージ媒体のより特定の例非網羅的リストは、1本または複数本の線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM、読み取り専用メモリROM、消去可能プログラマブル読み取り専用メモリEPROMまたはフラッシュメモリ、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリCD-ROM、光ストレージデバイス、磁気ストレージデバイス、または、上記の任意の好適な組み合わせを含む。本明細書との関連において、コンピュータ読み取り可能ストレージ媒体は、命令実行システム、装置、またはデバイスによって、またはそれらに関して使用するためのプログラムを含むかまたは格納することが可能な、任意の有形媒体とすることができる。コンピュータ読み取り可能信号媒体は、たとえばベースバンド内または搬送波の一部として、内部にコンピュータ読み取り可能プログラムコードが具体化された伝搬データ信号を含むことができる。こうした伝搬信号は、電磁、電気、またはそれらの任意の好適な組み合わせを含むがこれらに限定されない、任意の多様な形を取ることができる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能ストレージ媒体ではなく、命令実行のシステム、装置、またはデバイスによって、あるいはそれらに関して使用するためのプログラムを、通信、伝搬、または移送可能な、任意のコンピュータ読み取り可能媒体とすることができる。コンピュータ読み取り可能媒体上に具体化されたプログラムコードは、無線、有線、光ファイバーケーブル、RFなど、または上記の任意の好適な組み合わせを含むが、これらに限定されない、任意の適切な媒体を使用して伝送することができる。本発明の諸態様に関する諸動作を実行するためのコンピュータプログラムコードは、JavaR、SmalltalkR、Cなどのオブジェクト指向プログラミング言語、あるいは、Cプログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで作成可能である。プログラムコードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン型ソフトウェアパッケージとして、一部はユーザのコンピュータ上および一部はリモートコンピュータ上で、または、完全にリモートコンピュータまたはサーバ上で、実行することができる。後者のシナリオでは、リモートコンピュータを、ローカルエリアネットワークLANまたはワイドエリアネットワークWANを含む任意のタイプのネットワークを介して、ユーザのコンピュータに接続することが可能であるか、または、外部コンピュータにたとえば、インターネットサービスプロバイダを使用してインターネットを介して接続することが可能である。本発明の諸態様について、本発明の諸実施形態に従った方法、装置システム、およびコンピュータプログラム製品の流れ図あるいはブロック図またはその両方を参照しながら、以下で説明する。流れ図あるいはブロック図またはその両方の各ブロック、および流れ図あるいはブロック図またはその両方におけるブロックの組み合わせは、コンピュータプログラム命令によって実施可能である。これらのコンピュータプログラム命令を、汎用コンピュータ、特定用途向けコンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供し、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、流れ図あるいはブロック図またはその両方の1つまたは複数のブロック内に指定された機能/動作を実施するための手段を作成するように、マシンを製造できることを理解されよう。これらのコンピュータプログラム命令は、コンピュータ読み取り可能媒体内に格納された命令が、流れ図あるいはブロック図またはその両方の1つまたは複数のブロック内に指定された機能/動作を実施する命令を含む製品を製造するように、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対して、特定の様式で機能するよう命令することが可能な、コンピュータ読み取り可能媒体内に格納することもできる。コンピュータプログラム命令は、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上で、一連の動作ステップを実行させるために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイス上にロードし、コンピュータまたは他のプログラム可能装置上で実行する命令が、流れ図あるいはブロック図またはその両方の1つまたは複数のブロック内に指定された機能/動作を実施するためのプロセスを提供するような、コンピュータ実施プロセスを生成することもできる。本発明の諸実施形態は、クラウドコンピューティングインフラストラクチャを通じて、エンドユーザに提供することができる。クラウドコンピューティングは、一般に、ネットワークを介したサービスとしてスケーラブルなコンピューティングリソースを提供することを言い表す。より正式に言えば、クラウドコンピューティングは、コンピューティングリソースとその基礎となる技術的なアーキテクチャたとえば、サーバ、ストレージ、ネットワークとの間に抽象化を提供し、最小限の管理努力またはサービスプロバイダ対話を迅速に提供および解除することが可能な構成可能コンピューティングリソースの共有プールへの、便利なオンデマンドネットワークアクセスを可能にする、コンピューティング機能として定義することができる。したがって、クラウドコンピューティングは、ユーザが、クラウド内の仮想コンピューティングリソースたとえば、ストレージ、データ、アプリケーション、さらには完全な仮想化コンピューティングシステムへと、コンピューティングリソースを提供するために使用される基礎となる物理システムまたはそれらのシステムの位置に関係なく、アクセスできるようにする。典型的には、クラウドコンピューティングリソースは、ユーザが実際に使用したコンピューティングリソースたとえば、ユーザによって消費されたストレージ容量、またはユーザによってインスタンス生成された仮想化システムの数についてのみ課金される、ペイパーユーズベースpayperusebasisで提供される。ユーザは、いつでも、およびインターネットを介していずれの場所からでも、クラウド内に常駐する任意のリソースにアクセスすることができる。本発明との関連において、ユーザは、クラウド内で使用可能なアプリケーションたとえば、データベース管理システムすなわちDBMSまたは関係データにアクセスすることができる。たとえばDBMSは、クラウド内のコンピューティングシステム上で実行し、DBMSによって管理される1つまたは複数のデータベースに関連する照会を受信することができる。こうしたケースでは、メモリ使用量照会ガバナ182は、着信する照会を監視し、各照会について、照会を実行するための推定メモリ使用量を計算することができる。メモリ使用照会ガバナ182が、特定の照会に関する推定メモリ使用量がメモリしきい値量を超えるものと判別した場合、メモリ使用量照会ガバナ182は、照会の実行に使用されるメモリ圧縮量を調整することによって、照会を最適化することができる。このように実行することにより、クラウドに接続されたネットワークたとえばインターネットに接続された任意のコンピューティングシステムから、ユーザに照会をサブミットさせることが可能であり、単一の照会によって実行中に許容を超える量のメモリが消費されることのないように保証するのに役立つ。次に図1~図2を参照すると、図1~図2は、本発明の諸実施形態に従った、メモリ使用照会ガバナを実行するように構成されたシステムを示すブロック図である。より具体的に言えば、図1は、照会処理のためのメモリ使用量を推定および管理するための、ネットワーク化されたシステムを示す。図に示されるように、システム100は、ネットワーク150によって接続された、クライアントシステム120およびデータベースサーバ170を含む。一般に、クライアントシステム120は、ネットワーク150を介して、データベースサーバ170上で実行されているDBMSへ、要求すなわち照会をサブミットすることができる。照会という用語は、格納されたデータベースからデータを取り出すためのコマンドセットを示す。照会は、構造化照会言語SQLなどのコマンド言語の形を取ることが可能であり、プログラマおよびプログラムが、データベース内のデータの位置を選択、挿入、更新、および決定できるようにするものである。概して、いずれの要求側エンティティすなわち様々な照会タイプも、データベース内のデータに対して照会を発行することができる。たとえば、ソフトウェアアプリケーションクライアントシステム120上で実行されているアプリケーションなどによる、オペレーティングシステム、および最上位でのユーザは、データベースに照会をサブミットすることができる。これらの照会は、事前に定義するすなわち、アプリケーションの一部としてハードコーディングするか、または入力たとえばユーザ入力に応答して生成することができる。要求を受信すると、データベースサーバ170上のDBMSは、要求内に指定されたデータベース上で要求を実行した後、実行された要求の結果を戻すことができる。本発明の一実施形態によれば、処理のための照会を受信すると、照会ガバナシステム170上の照会ガバナは、受信した照会に関する推定メモリ消費値を計算することができる。推定メモリ消費値は、一般に、受信した照会の実行に使用されることになるシステムメモリの量たとえばメガバイト単位を反映する。照会ガバナは、以前の照会の処理から収集したメモリ使用量履歴データを使用して、推定メモリ消費値を計算することができる。例として、実行時に、15メガバイト、20メガバイト、および25メガバイトのメモリを消費した、ある特定のデータベーステーブルに関するSELECTステートメントを含む、3つの事前照会があるものと想定する。照会ガバナシステム170が、その特定のデータベーステーブルに関するSELECTステートメントを含む別の照会を受信すると、照会ガバナは、その照会が実行時に20メガバイトのメモリすなわち、3つの事前値の平均を消費することになるものと推定することができる。推定メモリ消費値が計算されると、照会ガバナは、その照会が実行された場合、許容を超える量のメモリを消費することになるかどうかを判別することができる。照会ガバナは、推定メモリ消費値と所定のメモリしきい値量とを比較することによって、これを判別することができる。推定メモリ消費値がメモリしきい値量を超える場合、照会ガバナは、その照会が許容を超える量のメモリを消費することになるものと判別することができる。こうしたシナリオでは、照会ガバナは、照会に関する諸動作の最適化を実行して、照会の実行に使用されるメモリ圧縮量を調整することができる。メモリ圧縮が使用できない状況では、こうした調整は、少なくとも照会の処理のためにメモリ圧縮を実行可能にすることを含むことができる。メモリ圧縮がすでに実行可能な状況では、調節は、照会の処理で使用される圧縮率を上げるすなわち、データはさらに圧縮されることになることを含むことができる。照会ガバナが、推定メモリ消費値がしきい値を超えないものと判別した場合、照会ガバナは、照会に関する諸動作の最適化を実行せずに、受信した照会を実行することができる。いかなるイベントでも、照会が実行されると、その照会の実行から生成されたすべての結果を、照会の受信元であった要求側エンティティへと戻すことができる。他の実施形態では、推定メモリ消費値がメモリしきい値量を超えることが判別されると、照会ガバナは、照会の実行に使用するための複数の実行プランを決定することができる。各実行プランは、一般に、実行された場合、照会によって指定されたアクションを完了するという、1つまたは複数のデータベース動作を含むことができる。複数の実行プランを計算すると、さらに諸実施形態は、各実行プランについて推定メモリ消費値を計算することができる。その後、諸実施形態は、選択された実行プランについて計算された推定メモリ消費値に基づいて、照会の実行に使用するための実行プランのうちの1つを選択することができる。一般に諸実施形態は、推定メモリ消費値が比較的低い実行プランを選択することができるが、他の要素も同様に考慮することができる。たとえば諸実施形態は、推定メモリ消費値に加えて、各実行プランについての推定実行時間を考慮することができる。一例として、諸実施形態が、2つの実行プランがメモリしきい値量を超えない推定メモリ消費値を有するが、第1の実行プランは第2の実行プランの2倍の実行時間がかかるものと判別した場合、諸実施形態は、照会の実行に使用するために第2の実行プランを選択することができる。もちろんこうした例には制限がなく、また単なる例示を目的としており、より一般的に言えば、本明細書で説明された機能と一致するいかなる要素も、前述の例で与えられた推定実行時間に加えて、またはこれに代わって、考慮することができる。有利なことに本発明の諸実施形態は、これを実行することによって、個々の照会がデータベースシステム上で消費可能なメモリの量を管理することができる。これを実行することにより、諸実施形態は、特定の照会がデータベースシステム上の他の照会およびタスクに損害を与えるほど、システムメモリのかなりの部分を消費する状況を防ぐことができる。さらに本発明の諸実施形態は、照会の処理を単純に拒否しないように、照会実行を管理することができる。むしろ、本発明の諸実施形態は、照会の処理で使用されるメモリの量を削減するためにメモリの圧縮を使用することによって、その推定メモリ使用量がしきい値を超える照会を依然として処理することができる。他の実施形態では、照会メモリ使用量要件を満たす照会実行プランを選択することができる。諸実施形態は、これを実行することにより、依然としてメモリ使用量制限に従いながらも、受信した照会を処理する。図2は、本発明の一実施形態に従った、メモリ使用照会ガバナを実行するように構成されたシステムを示すブロック図である。図に示されるように、システム110はクライアントシステム120およびデータベースサーバ170を含む。クライアントシステム120は、コンピュータプロセッサ122、ストレージメディア124、I/Oデバイス126、メモリ128、およびネットワークインターフェースカード134を含む。コンピュータプロセッサ122は、本明細書で説明される諸機能を実行することが可能な、任意のプロセッサとすることができる。クライアントシステム120は、ネットワークインターフェースカード134を使用して、ネットワーク150に接続することができる。さらに、当業者であれば理解されるように、本明細書で説明される諸機能を実行することが可能な任意のコンピュータシステムを使用することができる。例示されているように、メモリ128はクライアントアプリケーション130およびオペレーティングシステム132を含む。メモリ128は単一のエンティティとして示されているが、メモリ128は、ランダムアクセスメモリRAM、読み取り専用メモリROM、フラッシュメモリ、または他のタイプの揮発性あるいは不揮発性またはその両方のメモリなどの、物理アドレスに関連付けられたメモリのブロックを有する1つまたは複数のメモリデバイスを含むことができる。クライアントアプリケーション130は、一般に、データベース照会を生成することができる。クライアントアプリケーション130が照会を生成すると、その照会は、ネットワーク150を使用して実行のためにサーバたとえばDBMS180にサブミットされることが可能である。オペレーティングシステム132は、本明細書で説明される諸機能を実行することが可能な任意のオペレーティングシステムとすることができる。データベースサーバ170は、コンピュータプロセッサ172、ストレージメディア174、I/Oデバイス176、メモリ178、およびネットワークインターフェース186を含む。コンピュータプロセッサ172は、本明細書で説明される諸機能を実行することが可能な任意のプロセッサとすることができる。図に示されるように、ストレージメディア174はデータページ175を含む。データページ175は、一般に、1行または複数行のデータを含む。本発明の一実施形態では、データページ175に含まれるデータは、データベース184内の1つまたは複数のキー値に関連付けられる。I/Oデバイス176は、キーボード、マウス、ビジュアルディスプレイ、プリンタなどを含む、多彩な入力および出力のデバイスを表すことができる。データベースサーバ170は、ネットワークインターフェースカード186を使用して、ネットワーク150に接続することができる。さらに、当業者であれば理解されるように、本明細書で説明される諸機能を実行することが可能な任意のコンピュータシステムを使用することができる。図示された実施形態では、メモリ178はオペレーティングシステム185およびデータベース管理システム以下、DBMS180を含む。メモリ178は単一のエンティティとして示されているが、メモリ178は、ランダムアクセスメモリRAM、読み取り専用メモリROM、フラッシュメモリ、または他のタイプの揮発性あるいは不揮発性またはその両方のメモリなどの、物理アドレスに関連付けられたメモリのブロックを有する、1つまたは複数のメモリデバイスを含むことができる。DBMS180は、メモリ使用量照会ガバナ182およびデータベース184を含む。オペレーティングシステム185は、本明細書で説明される諸機能を実行することが可能な任意のオペレーティングシステムとすることができる。前述のように、DBMS180が処理する照会を受信した場合、照会ガバナ182は照会の処理に関するメモリ消費値を推定する。こうしたメモリ消費値は、たとえばDBMS180が、照会に関連付けられた動作実行の一部として、ストレージ174内のデータページ175からどれだけのデータをメモリ178へと取り出すことになるかを反映することができる。その後照会ガバナ182は、推定されたメモリ消費値を使用して、さらに最適化することなく照会を実行するかどうかを判別することができる。照会ガバナ182は、たとえばメモリ消費値と所定のメモリしきい値量とを比較することによって、これを判別することができる。推定されたメモリ消費値がしきい値を超える場合、照会ガバナ182は、照会を最適化して照会の実行で使用されるメモリ圧縮量を調整することができる。こうした最適化は、メモリ圧縮が実行不可である場合、照会を処理するためのメモリ圧縮を実行可能にすることを含むか、または照会の処理で使用される圧縮率を上げることを含むことができる。照会が最適化されると、DBMS180は、データベース184に対して照会を実行し、照会結果のセットを生成することができる。その後DBMS180は、照会結果のセットを、照会の受信元であった要求側エンティティへと戻すことができる。一実施形態では、照会ガバナ182は、照会の処理で消費されるメモリの量がしきい値量またはしきい値量近くとなるように、照会を最適化する。これを実行することによって、照会ガバナ182は、照会の処理におけるいかなる不要な遅延も避けながら、照会が許容可能な量のメモリ使用を実行することを保証することができる。すなわち、メモリ圧縮を追加すると、結果としてアクティビティが追加される可能性があるため、高いメモリ圧縮量を使用して実行される照会は、低いメモリ圧縮量を使用するかまたは圧縮を使用せずに実行される照会よりも、長時間かかる可能性がある。したがって、照会の実行がしきい値量またはしきい値量の近似を使用するように照会を最適化することにより、照会ガバナ182は、照会処理のいかなる遅延も最小限にしながら、メモリ使用量ポリシーを強化することができる。一実施形態では、照会ガバナ182は、照会の処理で使用可能なメモリしきい値量を決定する場合に、他の要素を考慮することができる。こうした要素は、制限なしに、照会の発信元、照会に関連付けられた優先度値、および照会のクラスを含むことができる。たとえば、優先度値の高いミッションクリティカルなmissioncriticalリアルタイムアプリケーションと、優先度値の低いデータベース統計値収集のためのロギングアプリケーションという、照会をDBMS180にサブミットする2つのアプリケーションが存在すると想定する。こうした例では、照会ガバナ182は、優先度の高いミッションクリティカルアプリケーションから受信した照会を処理する際に低いメモリ圧縮を使用し、それに応じてこれらの照会の処理を促進するために、ミッションクリティカルアプリケーションから受信した照会が、ロギングアプリケーションから受信した照会よりも多くのメモリを消費できるようにすることが可能である。すなわち、メモリ圧縮の使用により、照会ガバナシステム170上で追加の処理リソースを消費することができるため、より多くのメモリ圧縮量を使用して処理される照会は、より少ないメモリ圧縮量を使用するかまたは使用しないで処理される照会よりも、処理に長い時間がかかる可能性がある。したがって、より多くのシステムメモリを使用するために、高優先度アプリケーションから受信した照会の処理を実行可能にすることによって、照会ガバナ182はこれらの照会をより迅速に処理することができる。同時に照会ガバナ182は、照会の実行時にメモリ圧縮技法を使用することを通じて、たとえ低優先度アプリケーションから受信した照会が許容を超える量のメモリを消費することになる場合であっても、こうした照会の処理を実行可能にする。図3は、本発明の一実施形態に従った、メモリ圧縮の効果を示すブロック図である。示された例では、メモリ圧縮が実行可能化されていないメモリ1781は、メモリ圧縮が実行可能化されたメモリ1782と同じ物理データストレージ容量を有することに留意されたい。図に示されるように、メモリ1781は、未圧縮メモリ部分2101と未使用メモリ部分2401とを含む。メモリの未圧縮部分2101は、圧縮されていない1つまたは複数のアプリケーションによって使用されるデータを格納することができる。ここで未使用プール2401は、現在はいずれのデータも格納されていないメモリ1781の未使用データ容量を表す。これに対してメモリ1782は、メモリの未圧縮部分2102、圧縮部分2202、拡張部分2302、および未使用部分2402を含む。この例では、メモリ1782はメモリ1781と同じデータを効果的に含むが、メモリ圧縮を使用する。したがって、示された例では、未圧縮メモリ2102は、未圧縮メモリ部分2101に関係する。同様に、圧縮メモリ2202は、残りの未圧縮メモリ部分2101に関係する。すなわち、メモリ圧縮の使用により、組み合わされた場合、未圧縮メモリ2101よりもサイズの小さい、未圧縮メモリ2102および圧縮メモリ2202に、未圧縮メモリ2101からのデータ格納することが可能である。有利なことに本発明の諸実施形態は、メモリ圧縮を使用することによって拡張メモリプール2302を効果的に作成し、これを使用して圧縮済みまたは未圧縮のいずれの追加のデータも格納することができる。たとえばDBMSは、拡張メモリ2302を使用して、フェッチ中に追加のデータをストレージメディア174に格納することができる。加えて、こうしたメモリ圧縮は、使用可能なメモリを拡張するだけではなく、拡張メモリ2302が他の目的に使用可能であるため、結果としてデータベースシステム上のページングを減らすことも可能である。有利なことに、ページングはしばしば、データの圧縮および圧縮解除よりも大きな遅延につながるため、メモリ圧縮がデータベースシステムの性能を向上させることもできる。さらに、図3はメモリの様々な部分が連続しているように示されているが、実際にはプールに割り振られるメモリ領域は断片化可能である。しかしながら当業者であれば、この例では、不可欠な各部分によって占有されたメモリの量178であることを理解されよう。図4は、本発明の一実施形態に従った、照会のメモリ使用量を管理するための方法を示す流れ図である。図に示されるように、方法300はステップ310で開始され、ここで照会ガバナ182は、受信した照会に関する推定メモリ使用量値を計算する。前述のように、推定メモリ使用量値は、一般に、照会の処理で使用されることになるシステムメモリたとえばメモリ178の量を概算する。さらに照会ガバナ182は、以前に処理された照会から収集されたメモリ使用量履歴データに基づいて、この値を計算することができる。推定メモリ使用量値が計算されると、照会ガバナ182は、メモリ使用量値がメモリしきい値量を超えるかどうかを判別するステップ320。一般にこのしきい値量は、特定の照会の実行がどの程度のメモリ量を消費可能であるかを定義する。こうしたしきい値量は、たとえばデータベース管理者によって設定可能であり、こうした量の値はデータベース環境を反映するものとする。しきい値量が固定値たとえば10メガバイトのメモリである実施形態では、この値は一般に、データベースシステム内の合計メモリたとえば、照会ガバナシステム170におけるメモリ178のサイズに比例するものとする。他の実施形態では、しきい値量はシステムメモリのパーセント値たとえばメモリ178のサイズの10とすることができる。しきい値量は、データベースシステムの作業負荷に基づいて定義することもできる。たとえば、固定された期間内にデータベースに対して比較的多数の照会が発行されるシステムでは、いずれかの単一照会によるデータベースシステムのメモリリソースの過消費を避けるために、データベース管理者は比較的低いメモリしきい値を設定することができる。第2の例として、同じ固定された期間内にデータベースに対して比較的少数の照会が発行されるシステムでは、データベース管理者は比較的高いメモリしきい値を設定することができる。すなわち、この例では、システムメモリを消費する照会実行動作がより少ないため、各照会実行動作はシステムメモリのより大きな部分を使用することができる。加えて、しきい値量は、照会をサブミットする要求側エンティティの識別などの、1つまたは複数の他の要素に依存して変更することができる。たとえばある特定の環境は、高優先度アプリケーションおよび低優先度アプリケーションという、DBMSに照会をサブミットする2つのアプリケーションを含むことができる。こうした環境では、高優先度アプリケーションによってサブミットされた照会に関するメモリしきい値量は、低優先度アプリケーションによってサブミットされた照会に関するメモリしきい値量よりも大きい可能性がある。これを実行することによって、諸実施形態は、高優先度アプリケーションから受信した照会が比較的迅速に処理されること、およびメモリ圧縮の使用により最小限の遅延で処理されることを保証することができる。すなわち、システムメモリ内の値の圧縮および圧縮解除が追加の処理リソースを消費するため、こうした追加の処理が、結果としてメモリ圧縮を使用して処理される照会に関して処理時間を長くする可能性がある。したがって、高優先度アプリケーションから受信した照会に対してより高いメモリしきい値量を割り振ることによって、諸実施形態は、これらの照会がより迅速に処理されることを保証するために、これらの照会の処理に使用されるメモリ圧縮量を削減することができる。DBMSによって受信された照会は、優先度値に関連付けることもできる。優先度値は、一般に、比較的短い時間内に照会を処理する優先度を示す。一実施形態では、照会自体が、照会に関する優先度値をたとえば、照会内の特定のSQLタグを使用して明示的に指定することができる。他の実施形態では、照会ガバナ182は、照会の処理でどのデータベース構造がアクセスされるか、および照会のタイプなどの、1つまたは複数の要素に基づいて、特定の照会に関する優先度値を導出することができる。例として、照会がデータベース内の特定のテーブルを参照する場合、照会ガバナ182は、照会が比較的高い優先度の照会であるものと決定することができる。その後、こうした優先度値を使用して、照会の処理で使用されるメモリ圧縮量を調整するかどうかを決定することができる。たとえば、前述の高優先度照会に関して計算された推定メモリ使用量値は、メモリしきい値量を超える場合があるが、それにもかかわらず照会ガバナ182は、照会が比較的短い時間で実行することを保証するために、照会がメモリ圧縮なしに実行できるようにすることが可能である。第2の例として、照会ガバナ182は、照会の実行で使用されるメモリ圧縮量を調整することができるが、照会の高優先度値により、照会の実行時に依然として少ないメモリ圧縮を使用することができる。これを実行することによって、諸実施形態は、照会の処理におけるいかなる遅延も軽減させながら、依然としてデータベースシステム上のメモリ管理ポリシーを強化することができる。本発明の一実施形態では、さらに照会ガバナ182は、照会に関連付けられた優先度値とメモリしきい値量との間の相対的な優先度を考慮することができる。すなわち、こうした実施形態では、優先度値およびメモリしきい値量に、それぞれの相対的重要度を示す可変重みを割り当てることができる。優先度値がメモリしきい値量よりも重要であるとみなされる一例として、照会ガバナ182は、たとえその照会に関する推定メモリ使用量値がしきい値量を大幅に超える場合であっても、メモリ圧縮を使用せずに高優先度照会を実行すべきであるものと決定することができる。優先度値と比較してより高い優先度がメモリしきい値量に与えられる第2の例として、高優先度照会に関する推定メモリ使用量値がメモリしきい値量をわずかな量だけ超える場合、それにもかかわらず照会ガバナ182は、しきい値量の方がかなり重要に取り扱われるため、メモリ圧縮を使用して照会を実行すべきであるものと決定することができる。もちろん前述の例は単なる例示であり、当業者であれば、これに代わって任意数の他の要素および要素の組み合わせを使用してしきい値量が決定できることを理解されよう。推定メモリ使用量値がしきい値量を超えるものと判別されると、照会ガバナ182は、受信した照会の処理に関してメモリ圧縮が実行可能であるかどうかを判別するステップ325。メモリ圧縮が実行不可であるものと判別されると、照会ガバナ182は、照会の処理に関してメモリ圧縮を実行可能にするステップ330。メモリ圧縮が実行可能になると、方法300はステップ335~345のループに入り、ここで照会ガバナ182は、一般に、メモリしきい値量内で照会が実行できるようになるまで、照会の実行に使用するメモリ圧縮率を調整する。次に照会ガバナは、照会の処理のためにメモリ圧縮を調整するステップ335。初めに照会ガバナ182は、第1に圧縮率をデフォルトの初期値に設定することができる。しかしながらより一般的には、本明細書で説明される機能と一致する圧縮率を調整するための任意のアルゴリズムを使用することができる。次に照会ガバナ182は、調整された圧縮率を使用して、照会に関する推定メモリ使用量値を計算するステップ340。推定メモリ使用量値を計算すると、照会ガバナ182は、推定メモリ使用量値がメモリしきい値量を超えるかどうかを判別するステップ345。照会ガバナ182が、推定メモリ使用量値が依然としてしきい値量を超えると判別した場合、ループはステップ335から再度開始され、照会ガバナ182は、照会の処理に使用されるメモリ圧縮率を上げる。この代わりに、照会ガバナ182が、推定メモリ使用量値がしきい値を超えないと判別した場合、DBMS180は、調整されたメモリ圧縮率を使用して照会を実行するステップ350。同様に、ステップ320で、照会ガバナ182が、推定メモリ使用量値がしきい値量を超えないと判別した場合、DBMS180は、照会の処理でメモリ圧縮量を調整せずに照会を実行するステップ350。DBMS180が照会を実行すると、方法300は終了する。有利なことに方法300は、DBMS180によって実行される照会が、任意のメモリ使用制限を忠実に守り、データベースシステムのリソースを過消費しないことを保証するために役立つ。言い換えれば方法300は、個々の照会が他の処理に損害を与えるほど大量のシステムメモリを消費するのを防ぐ。さらに諸実施形態は、照会をサブミットする要求側エンティティたとえば、高優先度ソフトウェアアプリケーションの識別などの要素を考慮することによって、ある種の照会の処理が他の照会の処理よりも多くのシステムリソースを消費できるようにすることができる。これを実行することによって、諸実施形態は、特定の環境に適合し、環境内のアプリケーションまたはユーザ間の任意の異なる処置に対処するように、カスタマイズすることができる。図5は、本発明の一実施形態に従った、照会のメモリ使用量を管理するための方法を示す流れ図である。図に示されるように、方法400はステップ420で開始され、ここでDBMSは、データベースに対する特定の照会の実行を開始する。照会実行が開始されると、照会ガバナ182は、照会の処理で使用されるメモリ量を決定するために、照会の実行を監視するステップ425。次に照会ガバナ182は、照会の実行に使用される実際のメモリがメモリしきい値量を超えるかどうかを判別するステップ430。照会ガバナ182が、実際のメモリ使用量がしきい値量を超えるものと判別した場合、照会ガバナ182は、照会の処理に関して現在メモリ圧縮が実行可能であるかどうかを判別するステップ435。メモリ圧縮が未だ実行可能でない場合、照会ガバナ182はメモリ圧縮を実行可能にするステップ440。照会の処理に関してメモリ圧縮が実行可能である場合、照会ガバナ182は、照会処理で使用される圧縮率を調整するステップ445。一般に、照会ガバナ182は、圧縮率を計算された率に設定し、照会の実行で使用される実際のメモリ使用量をメモリしきい値量を下回る値まで削減するはずである。圧縮率が調整されると、照会ガバナ182は、特定の照会が実行を完了したかどうかを判別するステップ450。同様に、ステップ430で照会ガバナ182が、実際のメモリ使用量がしきい値を超えていないものと判別した場合、照会ガバナ182は、照会実行が完了したかどうかを判別するステップ450。照会がまだ実行を完了していない場合、方法はステップ425へ戻り、照会ガバナ182は照会の実行の監視を続行する。この代わりに、照会が実行を完了した場合、DBMS180は照会の実行によって生じた任意の照会結果を、照会の発信元である要求側エンティティへと戻すステップ455。照会結果が戻されると、方法400は終了する。図6は、本発明の一実施形態に従った、照会のメモリ使用量を管理するための方法を示す流れ図である。方法500はステップ520で開始され、ここでDBMS180は、処理のための照会を受信する。照会を受信すると、照会ガバナ182は、照会処理で使用されることになる一時ストレージたとえばメモリ178の量を推定しステップ525、一時ストレージの推定量がメモリしきい値量を超えるかどうかを判別するステップ530。照会ガバナ182が、一時ストレージの推定量がしきい値量を超えると判別した場合、照会ガバナ182は、しきい値量を満たすように照会が最適化可能であるかどうかを判別するステップ535。一例として、照会の処理に関してメモリ圧縮がまだ実行可能でない場合、照会ガバナ182は、メモリ圧縮を実行可能にすることによってしきい値を満たすように照会を最適化できるものと判別することができる。照会ガバナ182が、しきい値を満たすように照会を最適化できるものと判別した場合、照会ガバナ182は、照会の実行に使用されるメモリの量を減らすように照会を最適化するステップ540。前述のように、照会最適化は、照会の処理で使用されるメモリ圧縮量を調整することを含むことができる。こうした調整は、メモリ圧縮が初期に実行不可であった場合、メモリ圧縮を実行可能にすることをさらに含み、照会の処理に関連付けられた圧縮率の調整も含むことができる。他の実施形態では、照会ガバナ182は、それぞれが照会を実行するように実行可能なデータベースの諸動作の異なるセットを指定する、照会の複数の実行プランを生成することによって、実行のために照会を最適化することが可能である。一般に、少なくとも1つの実行プランは、照会の処理において何らかのメモリ圧縮量を使用することになる。照会ガバナ182は、それぞれの実行プランに従って、照会を実行するための推定メモリ使用量値を計算することができる。推定メモリ使用量値が計算されると、照会ガバナ182は、計算された推定メモリ使用量値に基づいて、照会の実行に使用するための実行プランのうちの1つを選択することができる。照会が最適化されると、DBMS180は最適化された照会を実行するステップ545。複数の実行プランのうちの1つを選択することによって照会が最適化されるイベントでは、DBMS180は、選択された実行プランに従って照会を実行する。次に照会ガバナ182は、照会の実行に使用される実際のメモリ量がしきい値量を侵害しないことを保証するために、照会の実行を監視することができるステップ555。本発明の一実施形態では、こうした監視は図5に示された前述の方法400に従って実施される。同様に、メモリ圧縮が実行可能であり、それ以上圧縮率を上げられない場合、照会ガバナ182は、メモリしきい値を満たすように照会が最適化できないものと判別することができる。しきい値を満たすように照会が最適化できない場合、照会ガバナ182は処理のための照会を拒否するステップ550。こうした拒否は、照会の発信元である要求側エンティティに通知を送信することを含むことができる。この通知は、処理のための照会が拒否された旨のインジケーションを含むことが可能であり、照会が拒否された理由の説明をさらに含むことができる。図面内の流れ図およびブロック図は、本発明の様々な諸実施形態に従ったシステム、方法、およびコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。この点において、流れ図またはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備える、モジュール、セグメント、またはコードの一部を表すことができる。いくつかの代替実施では、ブロック内に示された諸機能が図内に示された順序以外で実行可能であることも留意されたい。たとえば、連続して示された2つのブロックを、実際にはほぼ同時に実行することが可能であるか、または関連する機能に応じて、時にはこのブロックを逆の順序で実行することができる。ブロック図あるいは流れ図またはその両方の各ブロック、ならびに、ブロック図あるいは流れ図またはその両方のブロックの組み合わせが、指定された機能または動作を実行する特定用途向けのハードウェアベースシステム、あるいは特定用途向けハードウェアとコンピュータ命令との組み合わせによって、実施可能であることも留意されよう。前述の内容は本発明の諸実施形態を対象にしたものであるが、本発明の他の諸実施形態はその基本範囲を逸脱することなく考案可能であり、その範囲は以下の特許請求の範囲によって決定される。