[英]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.