CData Virtuality は内部動作中のデータ保存にバッファを使用します。バッファは 2 種類のデータの保存に使用できます:

  • 例えば、CData Virtuality Server がORDER BYGROUP BYの操作を行っているときなど、クエリ実行中の操作に必要な一時的なデータ;
  • データソース(CLOB、BLOB、XMLドキュメントなど)からの大きなデータ。 

バッファは、メイン・メモリ(Javaヒープ空間の外側)またはディスクに存在することができます。メモリとディスク間のデータ移動はユーザーにとって透過的であり、CData Virtuality Server がデータサイズ、並列で実行されるさまざまなクエリのリソースニーズ、利用可能なRAM 量に基づいて自動的に決定します。ディスク・バッファ・サイズは50Gbに設定されていますが、より大きな値に再設定することができます。例えば、以下のSQL ステートメントはディスクバッファサイズを100Gb に増加させます(新しい設定を有効にするには CData Virtuality Server の再起動が必要です):

CALL SYSADMIN.executeCli(script => '/subsystem=teiid/:write-attribute(name=buffer-service-max-buffer-space,value=102400)');;

全体のバッファ使用量とクエリごとのバッファ使用量は、以下のいずれかの章で説明するように、パフォーマンスモニタリングツールを使用して監視することができます。 

Buffers Configurationがパフォーマンスに与える影響を理解するための鍵は以下のとおりです:

  1. ほとんどの場合、クエリによるバッファの使用は、ソースにオペレーションをプッシュダウンできないことの結果です。しかし、多くの場合、Pushdownはそれ以上最適化できず、バッファの使用は正当です。 
  2. ほとんどの場合、メモリバッファはディスクバッファよりもはるかに高速に動作します。正確な比率は技術によって異なるため、SSDドライブはHDDよりもかなり高速です。速度をさらに Optimization する必要がある場合は、サーバーに RAM を追加してパフォーマンスを向上させることもできます。