スワップポリシーの構成

Virtual DataPort で大容量のデータセットを処理する場合にメモリオーバーフローを回避するには、次の 2 つの方法があります。

  • 処理されていないデータのサイズが一定の制限を超えた場合、ソースからのデータの取得を停止する。

  • スワップメカニズムを有効にする。これにより、データのサイズが一定の制限を超えた場合、クエリ実行の中間結果をセカンダリストレージに保存します。また、ソート操作 (ORDER BY を使用したクエリ) の中間結果もスワップします。

これらの方法の詳細と、各方法を制御する設定のデフォルト値を変更する方法については、管理ガイドの「 メモリ使用量とスワップポリシーの構成 」を参照してください。

特定の VQL ステートメントを実行して、以下のエレメント内の値を変更することもできます。

注釈

ビューまたはデータベースのスワップ構成は変更しないでください。ほとんどの場合、この構成を変更してもクエリのパフォーマンスが向上することはなく、値によっては悪影響を及ぼすこともあります。このため、データベースまたはビューのこれらの設定は GUI では変更できなくなっています。

例 1: データベースのメモリ使用量パラメーターを変更して、以下のパラメーターを設定します。

  • 「各ノードのメモリ内での最大サイズ」を 100 に設定する

  • 「スワップに保存するブロックの最大サイズ」を 150 に設定する

  • 「各中間結果のメモリ内での最大サイズ」を 50 に設定する

ALTER DATABASE testing
  MEMORYCONFIG (
    SWAP ON (
      SWAPSIZE 100
      SWAPBLOCKSIZE 150
    )
    MAXRESULTSIZE 50
  )

例 2: ビューのスワップを無効にします。

ALTER VIEW V SWAP OFF;

例 3: ビューのスワップを有効にし、「最大サイズ」を 100 Mb に、「最大結果サイズ」を 25 Mb に設定します。

ALTER VIEW V SWAP ON SWAPSIZE 100 MAXRESULTSIZE 25;

例 4: クエリを実行し、スワップを無効にします。属性 SWAP をクエリの CONTEXT 句に追加すると、ビューでスワップが有効になっていてもスワップが無効になります。これは、 CONTEXT 句のパラメーター SWAPSWAPSIZE の値はビューの設定より優先されるためです。

SELECT  CONTEXT ('SWAP' = 'OFF')

例 5: スワップを有効にし、スワップの「最大サイズ」を 100 Mb に設定するクエリを実行します。

SELECT  CONTEXT ('SWAP' = 'ON', 'SWAPSIZE' = '100' )