我讀過一些關於使用空間優化表的文章。實際上我使用存儲的經度和緯度作爲varchar
逗號分隔(lat; lng)。需要移動SQL Server 2005表存儲Lat; Lng作爲varchar到Spatial?
您能否提出執行此更改並列舉優勢的最佳方法。對於一個大型項目來說真的有必要或者只是遷移到SQL Server 2008?
謝謝。
我讀過一些關於使用空間優化表的文章。實際上我使用存儲的經度和緯度作爲varchar
逗號分隔(lat; lng)。需要移動SQL Server 2005表存儲Lat; Lng作爲varchar到Spatial?
您能否提出執行此更改並列舉優勢的最佳方法。對於一個大型項目來說真的有必要或者只是遷移到SQL Server 2008?
謝謝。
我想添加兩個新的persisted computed colunns到您的表中,如下面的演示所示。
create table Demo (
LatLng varchar(100),
Lat as CAST(LEFT(LatLng, charindex(';',LatLng)-1) as float) PERSISTED,
Lng as CAST(SUBSTRING(LatLng, charindex(';',LatLng)+1, LEN(LatLng)-charindex(';',LatLng)) as float) PERSISTED
)
insert into Demo
(LatLng)
values
('33.0000;15.222222')
select *
from Demo
drop table Demo
偉大的喬,瑟克斯。該表是sqlserver2005未針對幾何搜索進行優化。你能否解釋一下將這個解決方案移植到優化幾何體上http://mssqlspatial.codeplex.com/wikipage?title=Getting%20Started&referringTitle=Tutorials – user325558 2010-10-06 23:33:12
我很抱歉,但這遠遠超出了簡單評論部分的範圍。我建議你繼續谷歌的一些教程和例子。然後回到SO,對於任何尚不清楚的事情提出具體問題。 – 2010-10-07 01:49:46
我已經列舉您的具體情況的一些選項(計算列,用戶定義的函數),當你在這裏問的問題:MSSQL緯度,經度爲varchar分裂過程使用的緯度和液化天然氣的速度搜索(HTTP ://stackoverflow.com/questions/3873619/mssql-latlng-varchar-split-procedure-to-use-as-lat-and-lng-for-speed-searching/3873892#3873892)。 – 2010-10-06 16:08:06
存儲經緯度值所帶來的好處將取決於您如何使用這些值。你能詳細說明一下嗎? – 2010-10-06 16:22:52
這些值用於與積分地理點之間的Haversine距離。 Joe能否爲保存性能的大型數據庫提供最佳方式。 – user325558 2010-10-06 17:33:47