0

ポリゴン クエリ (ポリゴン内のポリゴン) のサイズ、数、およびパフォーマンスのために、データを前処理し、ポリゴンをグリッドに分割したいと考えています。私のデータは、関心のある領域でかなり均一であるため、12 個のグリッドでもうまく機能します。この数は、パフォーマンスに基づいて後で調整する場合があります。基本的に、関連付けられた空間インデックスを持つ 12 個のテーブルを作成するか、グリッドのパーティション キーを持つ単一のテーブルを作成するだけです。これにより、インデックスの合計サイズが 12 分の 1 に縮小され、パフォーマンスが向上することが期待されます。クエリ側から、適切なテーブルにクエリを送信します。

重要なのは、ポリゴンをこれらのグリッドにグループ化する方法を理解できるようにすることです。ポリゴンが複数のグリッド内にある場合は、それぞれにレコードを作成し、クエリで重複を排除する可能性があります。これが頻繁に起こるとは思いません。

基本的に、ポリゴンと交差し、ポリゴンがどのグリッドに収まるかを把握したい「グリッド」があります。

ありがとう

4

1 に答える 1

0

私のプロセスは次のようになります。

  1. データセット全体 (両方の軸) の MIN/MAX 座標値を見つけます
  2. これらの値を適切と思われるマージンで拡張します (組み合わせたときに縦座標が通常の長方形を形成しない場合)
  3. これらの MIN/MAX 縦座標内で設定された間隔でポリゴンを生成する小さなループを記述します。つまり、グリッド スクエアごとに 1 つのポリゴンを作成します。
  4. を使用して、SDO_COVERSどのグリッド スクエアが各ポリゴンをカバーしているかを確認します。複数のグリッドの正方形がポリゴンをカバーしている場合、説明したように複数の一致が表示されるはずです。

また、単一のテーブル内でデータを分割するという戦略にも同意します。これについて肯定的なコメントを聞いたことがありますが、個人的に試したことはありません. ただし、複数のテーブルに移動することによるオーバーヘッドは、避けたいもののように思えます。

于 2013-02-28T08:45:41.380 に答える