ヘッダーをスキップ
Oracle® Spatial開発者ガイド
11gリリース2 (11.2)
B72087-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

31 SDO_TUNEパッケージ(チューニング)

この章では、表31-1に示すチューニング・サブプログラムについて説明します。

表31-1 チューニング・サブプログラム

サブプログラム 説明

SDO_TUNE.AVERAGE_MBR


レイヤー内のジオメトリに対する平均最小境界矩形を計算します。

SDO_TUNE.ESTIMATE_RTREE_INDEX_SIZE


Rツリー空間索引表に必要な最大サイズ(MB)を見積もります。

SDO_TUNE.EXTENT_OF


レイヤー内のデータの最小境界矩形を戻します。

SDO_TUNE.MIX_INFO


各ジオメトリ・タイプのパーセンテージなどのような、空間レイヤーに対するジオメトリ・タイプ情報を計算します。

SDO_TUNE.QUALITY_DEGRADATION


索引の品質の低下度、またはすべての索引表に対する索引の平均品質の低下度を戻したり、指定した索引表に対する品質の低下度を戻します。(非推奨)


SDO_TUNE.AVERAGE_MBR

構文

SDO_TUNE.AVERAGE_MBR(

     table_name IN VARCHAR2,

     column_name IN VARCHAR2,

     width OUT NUMBER,

     height OUT NUMBER);

説明

レイヤー内のジオメトリに対する平均最小境界矩形(MBR)を計算します。

パラメータ

table_name

空間ジオメトリ表を指定します。

column_name

平均最小境界矩形を計算するジオメトリ列を指定します。

width

平均最小境界矩形の幅が格納されます。

height

平均最小境界矩形の高さが格納されます。

使用上の注意

このプロシージャは、平均最小境界矩形の幅および高さを計算して、格納します。平均最小境界矩形は、空間ジオメトリ表内のすべてのジオメトリの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

構文

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)を見積もります。

パラメータ

schemaname

空間ジオメトリ表を所有するスキーマを指定します。

tabname

空間ジオメトリ表の名前を指定します。

colname

ジオメトリ列の名前を指定します。

partname

colnameで指定したジオメトリを含むパーティションの名前を指定します。このパラメータを指定した場合、指定したパーティション内のジオメトリのRツリー索引表に必要なサイズを見積もった値が戻されます。このパラメータを指定しない場合、colnameで指定したすべてのジオメトリのRツリー索引表に必要なサイズを見積もった値が戻されます。

number_of_geoms

空間ジオメトリ表内のジオメトリのおおまかな数を指定します。

db_block_size

データベース・ブロックのサイズをバイト単位で指定します。

sdo_rtr_pctfree

索引の作成時は空にしておく、各索引ツリー・ノードのスロットの最小割合です。空のスロットは、後で表に新しいデータを挿入したときにデータが書き込まれます。値は0から50の範囲です。デフォルト値(10)はほとんどのアプリケーションに最適ですが、0はジオメトリ列が更新されない場合に使用してください。

num_dimensions

索引付けする次元数を指定します。デフォルト値は2です。CREATE INDEX文でsdo_indx_dimsパラメータを指定する場合、num_dimensions値をsdo_indx_dims値と一致させる必要があります。

is_geodetic

空間索引を測地索引にするかどうかを指定します。1を指定した場合は測地索引となり、0(デフォルト)を指定した場合は非測地索引となります。

使用上の注意

このファンクションは、作成されるRツリー空間索引の空間索引表(2.9.2項を参照)に必要な最大サイズを見積もった値(MB)を戻します。戻される値は、索引作成後に必要な最大サイズ(MB)です。索引作成中は、一時表に十分な領域を確保するために、この値(MB)の約3倍の領域が表領域に必要となります。

このファンクションには、次の2つの形式があります。

  • 文字列パラメータ(schemanametabnamecolnameおよびオプションでpartname)を指定する形式: 空間ジオメトリ表がすでに存在する場合、索引作成前にそれ以上のジオメトリを追加しない場合、およびデフォルトのRツリー索引付けパラメータを使用する場合に使用します。

  • 整数パラメータ(number_of_geomsdb_block_sizesdo_rtr_pctfreenum_dimensionsおよびis_geodetic)を指定する形式: 空間ジオメトリ表が存在しない場合、空間ジオメトリ表は存在するが、索引作成前にそれ以上のジオメトリを追加する場合、num_dimensions値が2(非測地データ)または3(測地データ)ではない場合、CREATE INDEX文のsdo_indx_dimsパラメータでデフォルト以外の値を指定する場合に使用します。

次の例では、索引のパラメータがnumber_of_geoms = 1000000(100万)、db_block_size = 2048sdo_rtr_pctfree = 10num_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

構文

SDO_TUNE.EXTENT_OF(

     table_name IN VARCHAR2,

     column_name IN VARCHAR2

     ) RETURN SDO_GEOMETRY;

説明

レイヤー内のすべてのジオメトリの最小境界矩形(MBR)を戻します。

パラメータ

table_name

空間ジオメトリ表を指定します。

column_name

最小境界矩形を戻すジオメトリ列を指定します。

使用上の注意

SDO_AGGR_MBRファンクションも、ジオメトリのMBRを戻します(第20章を参照)。空間索引がジオメトリ列上に定義されている場合、SDO_TUNE.EXTENT_OFファンクションは、SDO_AGGR_MBRファンクションよりも高いパフォーマンスを示します。ただし、SDO_TUNE.EXTENT_OFは2次元ジオメトリに制限されるのに対し、SDO_AGGR_MBRファンクションにはその制限がありません。また、SDO_TUNE.EXTENT_OFファンクションは表内のすべてのジオメトリに対するエクステントを計算しますが、SDO_AGGR_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

構文

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] );

説明

各ジオメトリ・タイプのパーセンテージなどのような、空間レイヤーに対するジオメトリ・タイプ情報を計算します。

パラメータ

table_name

空間ジオメトリ表を指定します。

column_name

ジオメトリ・タイプの情報を計算するジオメトリ・オブジェクト列を指定します。

total_geom

ジオメトリ・オブジェクトの合計数を戻します。

point_geom

点のジオメトリ・オブジェクトの数を戻します。

curve_geom

曲線のジオメトリ・オブジェクトの数を戻します。

poly_geom

ポリゴンのジオメトリ・オブジェクトの数を戻します。

complex_geom

複合ジオメトリ・オブジェクトの数を戻します。

使用上の注意

このプロシージャは、表に対するジオメトリ・タイプの情報を計算します。点、曲線ストリング、ポリゴンおよび複雑なジオメトリの数とともに、ジオメトリの合計数を計算します。

次の例では、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

構文

SDO_TUNE.QUALITY_DEGRADATION(

     schemaname IN VARCHAR2,

     indexname IN VARCHAR2

     ) RETURN NUMBER;

または

SDO_TUNE.QUALITY_DEGRADATION(

     schemaname IN VARCHAR2,

     scaling IN VARCHAR2,

     scaling IN VARCHAR2,

     ) RETURN NUMBER;

説明

索引の品質の低下度、またはすべての索引表に対する索引の平均品質の低下度を戻したり、指定した索引表に対する品質の低下度を戻します。


注意:

このファンクションは非推奨であり、将来のリリースでは説明が記載されなくなります。このファンクションを使用しないでください。空間索引では自己チューニングが行われるため、これは必要ありません。

パラメータ

schemaname

indexnameに指定された索引が含まれるスキーマの名前を指定します。

indexname

空間Rツリー索引の名前を指定します。

indextable

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