私は現在、緯度/経度浮動小数点型の列を持つ表を持ち、それらの2つの列に索引を加え、もう1つは検索する必要があるサイトを持っています。SQL Server 2008で「カバリング、空間」インデックスを作成できますか?
私はこのテーブルにある特定のポイントから半径内にある行を取得するために常にクエリを実行しています(実際にはスピードは正方形になります)が、インデックスは既に必要なので、このインデックス作成し、それを埋め、私は地理列を作成しました
Index Seek (cost: 100%) and SELECT (cost: 0%)
今
、私はSQL 2008の空間的な機能を利用しようとしている:実際のカバーであり、かつ実行計画が唯一の2つの段階があります空間インデックス、作品。
実行計画には100万歩があり、74%がClustered Index Seekに費やされ、Spatial Indexで見つかった行が実際の表に結合されますが、残りのデータを取得するには...
(空間インデックスシークは実行計画コストの1%かかります)
明らかに、Spatialインデックスを適切に使用しています。以前はLat/Longの "通常"インデックスを使用していましたが、メインテーブルへの参加が私を殺しています。Spatialクエリは以前のものの7倍の時間がかかります。
空間インデックスに列を追加する方法はありますか?以前に行っていたように、それをカバーして1ステップで処理できますか?
この状況を改善するために他にもできることはありますか?
UPDATE:私は「通常の」インデックスは、キーワードをINCLUDE使用して他の列「を含む」ことを見出した(私は知りませんでしたこれは、私はちょうど、インデックス自体の列を含めるために使用される)
よりますドキュメントhereには、その句は空間インデックスのオプションではありません... アイデア?
ありがとうございます!
ダニエル