FAQ
技術情報:Oracle で ST_DOMAIN_STATS タイプと ST_DOMAIN_OPERATORS の対応付けを解除する方法

ナレッジ番号:2783 | 登録日:2023/05/29 | 更新日:2023/06/21

【概要】

以下の手順では ST_DOMAIN_STATS 統計タイプから ST_DOMAIN_OPERATORS パッケージの対応付けを解除する Oracle のコマンドを紹介します。ST_DOMAIN_OPERATORS パッケージには ST_GEOMETRY 列の検索に空間インデックスを使用する ST_ENVINTERSECTS 関数が含まれています。

ST_DOMAIN_STATS 統計タイプは ST_ENVINTERSECTS 関数の述語値(矩形での検索)の I/O コストおよび選択性を Oracle のオプティマイザが導出する際に使用されます。ST_DOMAIN_STATS タイプから返される値は全表走査を実行するコストと比較されます。全表走査を実行するコストより低い場合には、オプティマイザはアクセスパスとして空間インデックスを使用することを選択します。

統計タイプとパッケージの対応付けを解除することで、Oracle のオプティマイザは常に ST_ENVINTERSECTS 関数のコストを I/O コストを 2、選択性を 10% として見積もります。このようにコストが低い場合、オプティマイザは空間インデックスを使用することを選択します。

Oracle で ST_ENVINTERSECTS 関数を含む SQL が全表走査および空間インデックスを使用しない場合にタイプからパッケージの対応付けを解除します。これはレイヤが ArcGIS で最初にフルエクステントで表示またはクエリ(共有プールにある Oracle の実行計画はアクセスパスとして全表走査を使用するようになる)された場合およびその後、大縮尺で表示された場合に空間インデックスを使用せずに全表走査を行うことで性能に影響を与えた場合などがあります。

【手順】

ST_DOMAIN_STATS タイプから ST_DOMAIN_OPERATORS パッケージの対応付けを解除するには sde ユーザで SQL*Plus にログインし以下の SQL を実行します:

SQL> DISASSOCIATE STATISTICS FROM PACKAGES st_domain_operators;
統計情報への対応付けが解除されました。

統計タイプとパッケージを再度対応付ける必要があった場合には、sde ユーザで SQL*Plus にログインし以下の SQL を実行します:

SQL> ASSOCIATE STATISTICS WITH PACKAGES st_domain_operators USING st_domain_stats;
統計情報が対応付けられました。

【補足】

統計情報の対応付けを解除した結果、空間インデックスが使用されるようになりますが、空間インデックスを使用した場合のコストの見積もりが正確ではなくなるため、他の検索条件との組み合わせによっては性能低下を招く可能性があります。

そのため、まず ArcGIS でフィーチャクラスのプロパティで空間インデックスの再計算等を行って適切なグリッドサイズを設定し、空間インデックスの統計情報が新しいことを確認して下さい。また、対応付けを解除した場合はすべてのオペレーションの性能に問題が無いことを確認して下さい。

メタデータ

種類

製品

バージョン