この章では、表31-1に示すチューニング・サブプログラムについて説明します。
表31-1 チューニング・サブプログラム
サブプログラム | 説明 |
---|---|
|
レイヤー内のジオメトリに対する平均最小境界矩形を計算します。 |
SDO_TUNE.ESTIMATE_RTREE_INDEX_SIZE |
Rツリー空間索引表に必要な最大サイズ(MB)を見積もります。 |
|
レイヤー内のデータの最小境界矩形を戻します。 |
|
各ジオメトリ・タイプのパーセンテージなどのような、空間レイヤーに対するジオメトリ・タイプ情報を計算します。 |
|
索引の品質の低下度、またはすべての索引表に対する索引の平均品質の低下度を戻したり、指定した索引表に対する品質の低下度を戻します。 (非推奨) |
構文
SDO_TUNE.AVERAGE_MBR(
table_name IN VARCHAR2,
column_name IN VARCHAR2,
width OUT NUMBER,
height OUT NUMBER);
説明
レイヤー内のジオメトリに対する平均最小境界矩形(MBR)を計算します。
パラメータ
空間ジオメトリ表を指定します。
平均最小境界矩形を計算するジオメトリ列を指定します。
平均最小境界矩形の幅が格納されます。
平均最小境界矩形の高さが格納されます。
使用上の注意
このプロシージャは、平均最小境界矩形の幅および高さを計算して、格納します。平均最小境界矩形は、空間ジオメトリ表内のすべてのジオメトリのXとYの最大値と最小値を追跡および記録することによって計算されます。
例
次の例では、COLA_MARKETS表のSHAPE列について最小境界矩形を計算します。
DECLARE table_name VARCHAR2(32) := 'COLA_MARKETS'; column_name VARCHAR2(32) := 'SHAPE'; width NUMBER; height NUMBER; BEGIN SDO_TUNE.AVERAGE_MBR( table_name, column_name, width, height); DBMS_OUTPUT.PUT_LINE('Width = ' ││ width); DBMS_OUTPUT.PUT_LINE('Height = ' ││ height); END; / Width = 3.5 Height = 4.5
関連項目
SDO_AGGR_MBR空間集計ファンクション(第20章)
構文
SDO_TUNE.ESTIMATE_RTREE_INDEX_SIZE(
schemaname IN VARCHAR2,
tabname IN VARCHAR2,
colname IN VARCHAR2,
partname IN VARCHAR2 DEFAULT NULL
) RETURN NUMBER;
または
SDO_TUNE.ESTIMATE_RTREE_INDEX_SIZE(
number_of_geoms IN INTEGER,
db_block_size IN INTEGER,
sdo_rtr_pctfree IN INTEGER DEFAULT 10,
num_dimensions IN INTEGER DEFAULT 2,
is_geodetic IN INTEGER DEFAULT 0
) RETURN NUMBER;
説明
Rツリー空間索引表に必要な最大サイズ(MB)を見積もります。
パラメータ
空間ジオメトリ表を所有するスキーマを指定します。
空間ジオメトリ表の名前を指定します。
ジオメトリ列の名前を指定します。
colname
で指定したジオメトリを含むパーティションの名前を指定します。このパラメータを指定した場合、指定したパーティション内のジオメトリのRツリー索引表に必要なサイズを見積もった値が戻されます。このパラメータを指定しない場合、colname
で指定したすべてのジオメトリのRツリー索引表に必要なサイズを見積もった値が戻されます。
空間ジオメトリ表内のジオメトリのおおまかな数を指定します。
データベース・ブロックのサイズをバイト単位で指定します。
索引の作成時は空にしておく、各索引ツリー・ノードのスロットの最小割合を指定します。空のスロットは、後で表に新しいデータを挿入したときにデータが書き込まれます。値は0から50の範囲です。デフォルト値(10)は、ほとんどのアプリケーションの最適値です。ただし、ジオメトリ列に対して更新を行わない場合は、0(ゼロ)を設定することをお薦めします。
索引付けする次元数を指定します。デフォルト値は2です。CREATE INDEX文でsdo_indx_dims
パラメータを指定する場合、num_dimensions
値をsdo_indx_dims
値と一致させる必要があります。
空間索引を測地索引にするかどうかを指定します。1を指定した場合は測地索引となり、0(デフォルト)を指定した場合は非測地索引となります。
使用上の注意
このファンクションは、作成されるRツリー空間索引の空間索引表(2.9.2項を参照)に必要な最大サイズを見積もった値(MB)を戻します。戻される値は、索引作成後に必要な最大サイズ(MB)です。索引作成中は、一時表に十分な領域を確保するために、この値(MB)の約3倍の領域が表領域に必要となります。
このファンクションには、次の2つの形式があります。
文字列パラメータ(schemaname
、tabname
、colname
およびオプションでpartname
)を指定する形式: 空間ジオメトリ表がすでに存在する場合、索引作成前にそれ以上のジオメトリを追加しない場合、およびデフォルトのRツリー索引付けパラメータを使用する場合に使用します。
整数パラメータ(number_of_geoms
、db_block_size
、sdo_rtr_pctfree
、num_dimensions
およびis_geodetic
)を指定する形式: 空間ジオメトリ表が存在しない場合、空間ジオメトリ表は存在するが、索引作成前にそれ以上のジオメトリを追加する場合、num_dimensions
値が2(非測地データ)または3(測地データ)ではない場合、CREATE INDEX文のsdo_indx_dims
パラメータでデフォルト以外の値を指定する場合に使用します。
例
次の例では、索引のパラメータがnumber_of_geoms
= 1000000
(100万)、db_block_size
= 2048
、sdo_rtr_pctfree
= 10
、num_dimensions
= 2
およびis_geodetic = 0
である場合に、空間索引表に必要な最大サイズ(MB)を見積もります。
SELECT SDO_TUNE.ESTIMATE_RTREE_INDEX_SIZE(1000000, 2048, 10, 2, 0) FROM DUAL; SDO_TUNE.ESTIMATE_RTREE_INDEX_SIZE(1000000,2048,10,2,0) ----------------------------------------------------- 82
次の例では、SCOTTスキーマのCOLA_MARKETS表のSHAPE列の索引について、空間索引表に必要な最大サイズ(MB)を見積もります。この見積りは現在表内にあるジオメトリに基づきます。
SELECT SDO_TUNE.ESTIMATE_RTREE_INDEX_SIZE('SCOTT', 'COLA_MARKETS', 'SHAPE') FROM DUAL; SDO_TUNE.ESTIMATE_RTREE_INDEX_SIZE('SCOTT','COLA_MARKETS','SHAPE') --------------------------------------------------------------------- 1
構文
SDO_TUNE.EXTENT_OF(
table_name IN VARCHAR2,
column_name IN VARCHAR2
) RETURN SDO_GEOMETRY;
説明
レイヤー内のすべてのジオメトリの最小境界矩形(MBR)を戻します。
パラメータ
空間ジオメトリ表を指定します。
最小境界矩形を戻すジオメトリ列を指定します。
使用上の注意
SDO_AGGR_MBRファンクション(第20章を参照)も、ジオメトリのMBRを戻します。データが非測地で、空間索引がジオメトリ列上に定義されている場合、SDO_TUNE.EXTENT_OFファンクションは、SDO_AGGR_MBRファンクションよりも高いパフォーマンスを示します。ただし、SDO_TUNE.EXTENT_OFファンクションは2次元ジオメトリに制限されるのに対し、SDO_AGGR_MBRファンクションにはその制限がありません。また、SDO_TUNE.EXTENT_OFファンクションは、表内のすべてのジオメトリに対するエクステントを計算しますが、SDO_AGGR_MBRファンクションは、行のサブセット上での操作が可能です。
SDO_TUNE.EXTENT_OFファンクションは、データが矛盾している場合、NULLを戻します。
非測地の空間索引が使用されている場合、このファンクションは、索引内に保存されているデータの最大エクステントを囲むMBRの近似値を戻します。データがその後削除されていた場合も同様です。これは、非測地の空間索引が存在する場合、このファンクションはそこからMBR情報を抽出するために発生します。
例
次の例では、COLA_MARKETS表のSHAPE列のオブジェクトについて最小境界矩形を計算します。
SELECT SDO_TUNE.EXTENT_OF('COLA_MARKETS', 'SHAPE') FROM DUAL; SDO_TUNE.EXTENT_OF('COLA_MARKETS','SHAPE')(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, -------------------------------------------------------------------------------- SDO_GEOMETRY(2003, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 3), SDO_ORDINATE_ARRAY(1, 1, 10, 11))
関連項目
SDO_AGGR_MBR集計ファンクション(第20章)
SDO_TUNE.AVERAGE_MBRプロシージャ
構文
SDO_TUNE.MIX_INFO(
table_name IN VARCHAR2,
column_name IN VARCHAR2
[, total_geom OUT INTEGER,
point_geom OUT INTEGER,
curve_geom OUT INTEGER,
poly_geom OUT INTEGER,
complex_geom OUT INTEGER] );
説明
各ジオメトリ・タイプのパーセンテージなどのような、空間レイヤーに対するジオメトリ・タイプ情報を計算します。
パラメータ
空間ジオメトリ表を指定します。
ジオメトリ・タイプの情報を計算するジオメトリ・オブジェクト列を指定します。
ジオメトリ・オブジェクトの合計数を戻します。
点のジオメトリ・オブジェクトの数を戻します。
曲線のジオメトリ・オブジェクトの数を戻します。
ポリゴンのジオメトリ・オブジェクトの数を戻します。
複合ジオメトリ・オブジェクトの数を戻します。
使用上の注意
このプロシージャは、表に対するジオメトリ・タイプの情報を計算します。点、曲線ストリング、ポリゴンおよび複雑なジオメトリの数とともに、ジオメトリの合計数を計算します。
例
次の例では、COLA_MARKETS表のSHAPE列にあるジオメトリ・オブジェクトの混在についての情報を表示します。
CALL SDO_TUNE.MIX_INFO('COLA_MARKETS', 'SHAPE'); Total number of geometries: 4 Point geometries: 0 (0%) Curvestring geometries: 0 (0%) Polygon geometries: 4 (100%) Complex geometries: 0 (0%)
構文
SDO_TUNE.QUALITY_DEGRADATION(
schemaname IN VARCHAR2,
indexname IN VARCHAR2
) RETURN NUMBER;
または
SDO_TUNE.QUALITY_DEGRADATION(
schemaname IN VARCHAR2,
indexname IN VARCHAR2,
indextable IN VARCHAR2
) RETURN NUMBER;
説明
索引の品質の低下度、またはすべての索引表に対する索引の平均品質の低下度を戻したり、指定した索引表に対する品質の低下度を戻します。
注意: このファンクションは非推奨であり、Spatialの将来のリリースでは説明が記載されなくなります。 このファンクションを使用しないでください。 空間索引では自己チューニングが行われるため、このファンクションは必要ありません。 |
パラメータ
indexname
に指定された索引が含まれるスキーマの名前を指定します。
空間Rツリー索引の名前を指定します。
indexname
に指定された空間Rツリー索引に関連付けられた索引表の名前を指定します。
使用上の注意
このファンクションは非推奨であり、このマニュアルの将来のリリースには含まれません。 空間索引では自己チューニングが行われるため、このファンクションを使用しないでください。 このファンクションの使用に関するその他の注意事項は、このマニュアルの以前のリリースを参照してください。
品質低下度は、索引の作成時または最後の再作成時に実行された任意の問合せの索引部分のI/O操作と比較して、同じ問合せの索引部分のI/O操作の実行に現行の索引を使用した場合にかかる時間の比率をおおまかに示す数字です。たとえば、通常の問合せの索引部分のI/O操作に、索引の作成または再作成時の2倍の時間がかかる場合、品質低下度は2になります。問合せ時間全体での品質低下度を正確に予測することは不可能ですが、品質が大幅に(2以上)低下すると、大規模なデータベース(数百万行が含まれるデータベースなど)に対する問合せのパフォーマンスに重大な影響を与えます。
ローカル・パーティション索引には、indextable
パラメータを含む形式を使用する必要があります。つまり、対象のパーティションごとに品質低下度を計算する必要があります。
索引名は、xxx_SDO_INDEX_INFOビューおよびxxx_SDO_INDEX_METADATAビューで参照できます(2.9.1項を参照)。
Rツリーの品質および問合せのパフォーマンスへの影響の詳細およびガイドラインは、1.7.2項を参照してください。
例
次の例では、COLA_SPATIAL_IDX索引の品質低下度を戻します。この例では、品質が低下していないため、低下度は1になります。通常、現行の索引を使用した場合に問合せの索引部分のI/O操作にかかる時間は、元の索引または前の索引を使用した場合と同じです。
SELECT SDO_TUNE.QUALITY_DEGRADATION('SCOTT', 'COLA_SPATIAL_IDX') FROM DUAL; SDO_TUNE.QUALITY_DEGRADATION('SCOTT','COLA_SPATIAL_IDX') -------------------------------------------------------- 1