Геопространственные данные в SQL - PullRequest
6 голосов
/ 10 мая 2011

В последнее время я экспериментировал с типом географии, и мне это просто нравится. Но я не могу решить, должен ли я конвертировать из моей текущей схемы, которая хранит широту и долготу в двух отдельных числовых (9,5) полях, в тип географии. Я рассчитал размер обоих типов, и широта / долгота представления точки составляет 28 байт для одной точки, тогда как тип географии равен 26. Не большой выигрыш в пространстве, но огромное улучшение в выполнении геопространственных операций (пересечение, измерение расстояния и т. Д. ), которые в настоящее время обрабатываются с использованием неудобных хранимых процедур и скалярных функций. Что мне интересно, так это показатели. Требуется ли для географического типа данных больше места для индексации данных? У меня есть ощущение, что это произойдет, хотя фактические данные, хранящиеся в столбцах, меньше, но я думаю, что работа геопространственных индексов в конечном итоге приведет к выделению для них большего пространства.

P.S. в качестве примечания, кажется, что SQL Server 2008 (не R2) не выполняет автоматический поиск через геопространственные индексы, если явно не указано использование предложения WITH (INDEX ())

Ответы [ 3 ]

1 голос
/ 15 июня 2011

На мой взгляд, вам определенно следует использовать только пространственные типы. Пространственный тип оптимизирован для пространственных запросов, и если вам нужны пространственные запросы, то я думаю, что это простой выбор.

В качестве побочного эффекта вы можете избавиться от своих географических функций и процедур, поскольку они (возможно) встроены в SQL Server 2008. Однако следует предостеречь, что вам может потребоваться некоторое время на оптимизацию пространственных индексов, но это зависит от ваш конкретный случай.

1 голос
/ 10 мая 2011

Я понимаю, что вы пытаетесь выбрать между сохранением одного из двух, но вы можете подумать о сохранении обоих. Если вы экспортируете свои данные в файлы форм, обычной практикой является использование поля lat lon вместе с полем geom.

0 голосов
/ 06 июня 2011

Я бы оставил оба. Может быть полезно легко запросить исходные координаты конкретного объекта, не требуя пространственных операций. У вас есть преимущество знания исходных точек, а также возможность создавать из них новую геометрию в случае, если вам это нужно в другой системе координат (например, если у вас есть геометрия в определенной проекции, которая будет терять большую точность при движении). другому).

...