SQLサーバーの空間インデックスのパフォーマンス
約200万レコードのテーブルがあります。境界ボックス以外のデフォルトを使用して、空間インデックスを作成します。一部のクエリは非常に高速で、一部のクエリは非常に低速であることに気付きました。決定要因は、クエリで使用されるポリゴンのサイズに現れます。 より大きな検索エリアでは、を使用WITH(INDEX(SIX_FT5))するとクエリが大幅に遅くなります(0秒から15秒以上)。小さい検索エリアでは、正反対が当てはまります。 以下は、私がテストしているクエリの一部です。 高速: SELECT TOP(1000) * FROM [FT5] WHERE (shape.STIntersects(geometry::STGeomFromText('POLYGON ((-133462.805381701 -668610.241000959, 2934415.68824241 -668610.241000959, 2934415.68824241 2200521.65831815, -133462.805381701 2200521.65831815, -133462.805381701 -668610.241000959))', 2264)) = 1) スロー: SELECT TOP(1000) * FROM [FT5] WITH(INDEX(SIX_FT5)) WHERE (shape.STIntersects(geometry::STGeomFromText('POLYGON ((-133462.805381701 -668610.241000959, 2934415.68824241 -668610.241000959, 2934415.68824241 2200521.65831815, -133462.805381701 2200521.65831815, -133462.805381701 -668610.241000959))', 2264)) = 1) 誰がここで何が起こっているのか知っていますか?