説明
- 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や空間型データにおいて、性能向上が顕著です。
例えば、初期データは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';