В настоящее время я настраиваю сервер sql и геосервер, чтобы отображать свои собственные карты с использованием openlayers в клиентском веб-браузере. Проблема, с которой я сталкиваюсь, заключается в том, что моя база данных SQL Server содержит ТОННЫ дорог (каждая дорога в Техасе), и простой выбор таблицы занимает НАВСЕГДА (почти 2 минуты с 2 348 638 строк). Есть ли у кого-нибудь какие-либо советы или рекомендации, которые я могу использовать для ускорения этого запроса, чтобы моему картографическому серверу не требовалось миллион лет для отображения фрагментов карты для клиента. Спасибо
Базовый выбор для таблицы с большим количеством строк выполняется очень медленно
comment
Вы должны опубликовать свой SQL и структуру таблицы, если хотите, чтобы у кого-то был шанс помочь вам.
- person thatidiotguy   schedule 11.02.2014
comment
Вы выбираете все столбцы и все строки? Почему? Неужели кто-то действительно собирается с пользой использовать все 2 миллиона строк и каждый атрибут каждой дороги? Также вы выполняете этот запрос из Management Studio на другом компьютере? Если это так, вам нужно учитывать, что передача более 2 миллионов строк по сети, а затем их рендеринг приложением будет способствовать некоторой замедлению. Почему бы не попытаться сосредоточиться на решении проблем с производительностью, возникающих при выполнении реальных осмысленных запросов к таблице?
- person Aaron Bertrand   schedule 11.02.2014
comment
Также мне кажется, что, поскольку дороги на самом деле не сильно меняются, вам следует подумать о предварительной материализации фрагментов карты и т. д.
- person Aaron Bertrand   schedule 11.02.2014
comment
Есть ли у вас полезные ссылки для предварительной материализации тайлов карты?
- person user2309367   schedule 11.02.2014
comment
Поскольку мы больше ничего не знаем, я предполагаю, что вы не проиндексировали столбцы своего поискового фильтра, что вынуждает SQL Server выполнять полное сканирование таблицы каждый раз. Это первое, на что я бы обратил внимание. Конечно, если бы вы могли опубликовать пример определения таблицы и запроса, который вы используете для выбора данных из нее, это очень помогло бы нам помочь вам. :)
- person Kahn   schedule 11.02.2014
comment
Вам абсолютно необходимо выполнить предварительный рендеринг тайлов. Это безумие перерисовывать плитки каждый раз, когда кто-то их запрашивает....
- person OGHaza   schedule 16.02.2014
Ответы (1)
То же, что и для вашего другого вопрос, при частичном рендеринге: проиндексируйте свои данные. Индексируйте поля геометрии и любые другие поля, по которым вы, вероятно, будете фильтровать.
person
b2Wc0EKKOvLPn
schedule
13.02.2014