Доброго времени,
есть табличка в одном из столбцов храниться координата объекта(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>>