スワップポリシーの構成¶
Virtual DataPort で大容量のデータセットを処理する場合にメモリオーバーフローを回避するには、次の 2 つの方法があります。
処理されていないデータのサイズが一定の制限を超えた場合、ソースからのデータの取得を停止する。
スワップメカニズムを有効にする。これにより、データのサイズが一定の制限を超えた場合、クエリ実行の中間結果をセカンダリストレージに保存します。また、ソート操作 (
ORDER BY
を使用したクエリ) の中間結果もスワップします。
これらの方法の詳細と、各方法を制御する設定のデフォルト値を変更する方法については、管理ガイドの「 メモリ使用量とスワップポリシーの構成 」を参照してください。
特定の VQL ステートメントを実行して、以下のエレメント内の値を変更することもできます。
特定のデータベース。ステートメント
ALTER DATABASE
を使用します (「 Virtual DataPort データベースの作成と変更 」を参照)。特定の基本ビューまたは派生ビュー。それぞれステートメント
ALTER TABLE
(「 クエリ機能: 検索メソッドとラッパー 」を参照) およびALTER VIEW
(「 派生ビューの変更 」を参照) を使用します。クエリ。ステートメントの
CONTEXT
句に適切なパラメータを追加します。
注釈
ビューまたはデータベースのスワップ構成は変更しないでください。ほとんどの場合、この構成を変更してもクエリのパフォーマンスが向上することはなく、値によっては悪影響を及ぼすこともあります。このため、データベースまたはビューのこれらの設定は 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
句のパラメータ SWAP
と SWAPSIZE
の値はビューの設定より優先されるためです。
SELECT … CONTEXT ('SWAP' = 'OFF')
例 5: スワップを有効にし、スワップの「最大サイズ」を 100 Mb に設定するクエリを実行します。
SELECT … CONTEXT ('SWAP' = 'ON', 'SWAPSIZE' = '100' )