2010-10-06 2 views
2

Я прочитал несколько статей об использовании пространственно оптимизированных таблиц. Фактически я использую сохраненную широту и долготу как varchar разделенные запятыми (lat; lng).Необходимо переместить таблицу SQL Server 2005 для хранения Lat; Lng как varchar для пространственного?

Не могли бы вы предложить лучший способ выполнить это изменение и перечислить преимущества. Это действительно необходимо для большого проекта или только для перехода на SQL Server 2008?

спасибо.

+0

я уже перечислил некоторые параметры (вычисляемых столбцов, определяемые пользователем функции) для вашей ситуации, когда вы задали вопрос здесь: [MSSQL период минувшего; LNG процедура VARCHAR Раскол использовать как Lat и ДЛН для скорости Searching] (HTTP : //stackoverflow.com/questions/3873619/mssql-latlng-varchar-split-procedure-to-use-as-lat-and-lng-for-speed-searching/3873892#3873892). –

+0

Преимущества, получаемые при сохранении ваших значений lat/long, будут зависеть от того, как вы используете эти значения. Не могли бы вы рассказать об этом? –

+0

Эти значения используются на расстоянии Хаверсина от геометрий расчета. Джо, вы могли бы предложить лучший способ для большой базы данных, которая сохранит производительность. – user325558

ответ

1

Я бы добавил два новых 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 
+0

Великий joe, thks. Эта таблица sqlserver2005 не оптимизирована для поиска геометрии. Не могли бы вы объяснить, как переместить это решение в оптимизированную геометрию? Http://mssqlspatial.codeplex.com/wikipage?title=Getting%20Started&referringTitle=Tutorials – user325558

+0

Прошу прощения, но это далеко не так просто. Я бы посоветовал вам продолжить работу с Google для некоторых учебных пособий и примеров. Затем вернитесь к SO с конкретными вопросами о чем-либо, что еще не ясно для вас. –