説明
- V4.3.x系では、この構成パラメータはV4.3.2バージョンから導入されました。
- V4.2.x系では、この構成パラメータはV4.2.3バージョンから導入されました。
機能の概要
lob_enable_block_cache_thresholdは、OUTROWストレージに保存されるLOBクエリキャッシュのしきい値を設定します。
権限要件
パラメータの確認
sysテナントとすべてのユーザーテナントはSHOW PARAMETERSステートメント、またはGV$OB_PARAMETERSビューを使用してこのパラメータを確認できます。パラメータの変更
sysテナントとユーザーテナントはこの構成パラメータを変更できます。
プロパティの説明
| プロパティ | 説明 |
|---|---|
| パラメータタイプ | CAP |
| デフォルト値 | 256K |
| 値の範囲 | [0B, 512M] |
| 変更は可能か | はい。ALTER SYSTEM SET ステートメントを使用して変更できます。 |
| OBServerノードの再起動が必要か | 不要です。設定は即時に反映されます。 |
使用方法
OUTROWストレージに保存されたLOBデータを読み取る際、現在読み取っているLOBデータの長さがlob_enable_block_cache_threshold以下である場合、クエリ時にそのLOBデータが存在するマイクロブロックをキャッシュします。これにより、次回のクエリ時にディスクI/Oをトリガーする必要がなくなり、ホットデータのクエリ性能が向上します。特にJSONやGISタイプのデータにおいて、性能向上が顕著です。
例えば、初期データはtテーブルです。
obclient> create table t(pk int primary key, c1 text);
obclient> insert into t values(1, repeat('1', 9000);
このLOBデータを読み取る際、使用するlob_enable_block_cache_thresholdの設定が8096Bであるとします。読み取るLOBデータの長さは9000Bであり、lob_enable_block_cache_thresholdの値よりも大きいため、今回の読み取りではキャッシュロジックはトリガーされません。値を9000Bに設定すると、次回データを読み取る際にキャッシュロジックがトリガーされます。次回の読み取り時にキャッシュがエリミネートされない場合、ディスクI/Oはトリガーされません。設定方法は以下のとおりです:
obclient> ALTER SYSTEM SET lob_enable_block_cache_threshold='9000b';
さらに、次回のクエリで同じマイクロブロック内の他のLOBデータを照会する場合でも、ディスクI/Oはトリガーされないため、OUTROWストレージに保存されたLOBのクエリ性能が向上します。
設定例
OUTROWストレージに保存されたLOBクエリキャッシュの長さを4kに設定します。
obclient> ALTER SYSTEM SET lob_enable_block_cache_threshold='4K';