Обновление с пространственным подвыбором крайне медленно на SQL Server 2008 r2 - PullRequest
0 голосов
/ 20 ноября 2011

У меня есть простой запрос на обновление, который обновляет одно поле.

Update tracks SET facility_id = (SELECT TOP 1 facility_id FROM facilities ORDER BY location.STDistance(tracks.location) ASC)

У меня есть таблица «дорожек» с миллионами записей (данные отслеживания) и таблица «объектов» (около 400 записей),У каждого есть поле местоположения (с географической точкой).Что я хочу сделать, это найти ближайший объект для каждой записи в «дорожках».

Это работает очень плохо на MS SQL Server 2008 r2 ... всего 16 строк / секунду.То же самое, что и Denali.

Кстати: Postgres 8.4 Обновляет около 1000 строк в секунду в VirtualMachine !!!

Что бы вы оптимизировали для повышения производительности?

Greetz,

Matze

1 Ответ

0 голосов
/ 25 ноября 2011

Если у вас его нет, как говорит a1ex07, создайте пространственный индекс, но затем также используйте указатель индекса.

...