35.13 SDO_UTIL.ENABLE_VECTORTILE_CACHE

書式

SDO_UTIL.ENABLE_VECTORTILE_CACHE(
  table_name     IN VARCHAR2,
  geom_col_name  IN VARCHAR2,                                
  ts_name        IN VARCHAR2 default NULL,                                
  min_zoom       IN NUMBER DEFAULT 0,                                
  max_zoom       IN NUMBER DEFAULT 23
); 

説明

ジオメトリ列を使用して表から作成されたベクター・タイルのキャッシュを有効にします。

パラメータ

table_name

ベクター・タイルの作成に使用される情報(ジオメトリ列および0個以上の属性列)を含む表の名前。

geom_col_name

ベクター・タイルの作成に使用されるtable_nameのSDO_GEOMETRY型の列の名前。

ts_name

表領域の名前。

これはオプションのパラメータです。指定すると、タイルのキャッシュ用に作成された表(SDO_VECTOR_TILE_CACHE$INFOおよびSDO_VECTOR_TILE_CACHE$TABLE)が、指定された表領域に作成されます。それ以外の場合、キャッシュ表はスキーマのデフォルトの表領域に作成されます。

min_zoom

キャッシュに格納される最小ズーム・レベル。

これはオプションのパラメータであり、デフォルト値は0です。min_zoomに8が指定されている場合は、ズームが8以上のタイルのみがキャッシュされます。min_zoomが6でタイルがリクエストされた場合、タイルは、計算されてコール元に返されますが、キャッシュされません。

max_zoom

キャッシュに格納される最大ズーム・レベル。

これはオプションのパラメータであり、デフォルト値は23です。max_zoomに16が指定されている場合、ズームが16以下のタイルのみがキャッシュされます。ズーム20でタイルがリクエストされた場合、タイルは、計算されてコール元に返されますが、キャッシュされません。

使用上のノート

ベクター・タイルのキャッシュは、デフォルトでは有効化されていません。ベクター・タイル・キャッシュを有効にするには、このSDO_UTIL.ENABLE_VECTORTILE_CACHEプロシージャをコールします。

タイルのキャッシュでは、キャッシュを有効にした2つの表がスキーマに作成されて保守されます:
  • SDO_VECTOR_TILE_CACHE$INFO: この表にはメタデータが含まれています。この表のすべてのタイル・キャッシュには、キャッシュのtable_namegeom_col_namemin_zoomおよびmax_zoomを記述する1行があります。

    この表は小さく、SDO_VECTOR_TILE_CACHE$TABLEと同じ表領域に格納されます。

  • SDO_VECTOR_TILE_CACHE$TABLE: この表には、スキーマで有効になっているすべてのベクター・タイル・キャッシュのベクター・タイルが含まれています。この表は非常に大きくなり、キャッシュを有効にしたスキーマによって所有されます。

    SDO_VECTOR_TILE_CACHE$INFOと同じ表領域に格納されます。ts_nameパラメータが必要な理由は、SDO_VECTOR_TILE_CACHE$TABLEの潜在的なサイズのためです。これにより、ユーザーは、ロードを処理するのに十分な大きさの表領域に、この表およびSDO_VECTOR_TILE_CACHE$INFO表を配置できます。

SDO_VECTOR_TILE_CACHE$INFOSDO_VECTOR_TILE_CACHE$TABLEは両方とも、キャッシュを有効にしたスキーマによって所有されます。したがって、スキーマはこれらの表内のデータを問い合せて操作できます。ただし、これらの表はベクター・キャッシュAPIを介してのみ操作される点に注意することが重要です。

SDO_UTIL.ENABLE_VECTORTILE_CACHEをコールすると、SDO_VECTOR_TILE_CACHE$INFOにエントリが作成されます。有効にすると、SDO_UTIL.GET_VECTORTILE APIを使用したときにキャッシュが移入されます。時間の経過とともに、キャッシュ内で使用可能なタイルが多くなり、計算する必要性が少なくなるため、パフォーマンスが向上します。

キャッシュする表SDO_VECTOR_TILE_CACHE$INFOおよびSDO_VECTOR_TILE_CACHE$TABLEがまだ存在しない場合は、SDO_UTIL.ENABLE_VECTORTILE_CACHEが初めてコールされたときに作成されます。

すでに有効になっているキャッシュに対して、異なるmin_zoomまたはmax_zoom (あるいは異なる両方)を使用してSDO_UTIL.ENABLE_VECTORTILE_CACHEをコールすると、キャッシュのそれらの値が調整されます。キャッシュ内にすでに存在し、新しいmin_zoomまたはmax_zoomに違反するタイルはキャッシュにそのまま残りますが、新しく計算されたタイルは新しい構成に従います。

タイル・キャッシュの表領域を変更するには、すべてのキャッシュを無効にする必要があります。SDO_VECTOR_TILE_CACHE$INFOおよびSDO_VECTOR_TILE_CACHE$TABLEキャッシュ表を削除する必要があります。その後、目的の表領域をパラメータとして指定してSDO_UTIL.ENABLE_VECTORTILE_CACHEを再度コールします。これは、現在キャッシュされているすべてのタイルを排除する破壊的なプロセスであることに注意してください。

次の例では、SDO_UTIL.ENABLE_VECTORTILE_CACHEをコールして、counties表のキャッシュを有効にします。
-- Enable a cache on the Counties table using the Geometry column
EXEC SDO_UTIL.ENABLE_VECTORTILE_CACHE('counties', 'geom');

-- Compute a vector tile
SELECT SDO_UTIL.GET_VECTORTILE(TABLE_NAME=>'COUNTIES', GEOM_COL_NAME=>'GEOM',
                                 TILE_ZOOM=>8, TILE_X=>73, TILE_Y=>97,
                                 ATT_COL_NAMES=>sdo_string_array('COUNTY','LANDSQMI'))
FROM dual;

-- Confirm that the cache now contains a copy of the computed tile.
-- If the same tile is requested again, then this cached version is returned.
SELECT COUNT(*) FROM SDO_VECTOR_TILE_CACHE$TABLE WHERE table_name='counties';