簡體   English   中英

SQL Server中的空間索引

[英]Spatial Indexing in sql server

我正在嘗試從postgres遷移到sql-server(windows)。 但是我不知道ms-sql語法,文檔也對我不利。 我有一個表“地理編碼”,以十進制格式存儲緯度和經度數據。 我有一個遷移,可以使用postgis索引經緯度較長的數據

create index index_on_geocodes_location ON geocodes using gist (st_geographyfromtext(((('POINT('::text || longitude) || ' '::text) || latitude) || ')'::text))

我很難為sql-server生成等效查詢。 根據文檔,如果列數據類型是地理,則非常容易,但是由於我已經有一個具有十進制數據類型的現有數據庫,因此無濟於事。

PS:我正在使用Rails遷移來執行查詢

假設您的用例正在執行空間查詢,否則沒有必要進行空間索引。 可以在空間數據類型的列頂部創建SQL Server中的空間索引-幾何(平面)或地理(彎曲)。 您可以創建持久化的計算列並在其上創建索引,如下所示(假設地理位置數據類型和SRID 4326):

create table Geocodes(
id int identity primary key,
long decimal,
lat decimal,
point as geography::Point(long, lat, 4326) persisted
)

create spatial index SPIX_Geocodes_Point on Geocodes(point) using geography_auto_grid

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM