Как устранить проблему производительности запроса для пространственной таблицы с более чем 10-миллионными строками [ухудшено после обновления БД до versio2016] - PullRequest
0 голосов
/ 26 марта 2019

иметь таблицу с текстовым адресом местонахождения в следующем формате [ID, TEXTADDRESS, GeoPoint] После пересоздания той же базы данных на SQLSERVER 2016 [ранее это было в SQL SERVER 2012] производительность значительно снизилась. Был в состоянии искать местоположение как 2000 записей в секунду, теперь это занимает около 14 секунд на запрос. Единственное изменение, внесенное в таблицу, если оно было создано в отдельной группе файлов (DBF2.ndf) Кластерный индекс PK и пространственный индекс существуют в одном файле. План выполнения кажется очень длинным, если сравнивать две версии SQL. В чем может быть проблема?

SET @point = Geography::Point(11.1548109,76.0293427,4326)
SET @region =@point.STBuffer(200) --200 meter buffer region

SELECT TOP 1 Id ,GeoPoint.STDistance(@point) FROM dbo.LocateAddress
    WHERE GeoPoint.Filter(@region) = 1
    ORDER BY GeoPoint.STDistance(@point) ASC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...