[MS SQL 2008] Spatial index
От: cadet354 Россия
Дата: 25.08.09 06:44
Оценка:
Доброго времени,
есть табличка в одном из столбцов храниться координата объекта(Coordinates), по той координате настроен географический индекс. Табличка порядка 40 тыс координат.
Выполняется простейший запрос типа:
    SELECT TOP 10 POIGeo.POIID, Coordinates.STDistance(@g1) 'Distance'
    FROM POIGeo --WITH  (index(spatial_index))
    INNER JOIN POIs ON POIGeo.POIID = POIs.POIID
    WHERE POIGeo.Coordinates.STDistance(@g1) < @distance

где @g1 координата места от которого ищутся объекты,@distance растояние впределах которого ищутся.
Без использования индекса процессор грузится под завязку, но скорость запроса больше, если использовать (раскоментировать hint, без хинта индекс не используется, смотрю по плану запроса), то процессор грузится под 30%, но время выполнения запроса становиться гораздо больше (раз 15-20) и начинаются активное чтение/запись на диск (смотрю process exployer).
Почему это может происходить, оперативки свободной еще много, ограничений на использование памяти для Sql Server нет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1231>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.