SQL 2012 в Hyper-V. Почему запросы выполняются медленно, пока я не создам пространственный индекс?

У меня есть пространственное приложение, которое запрашивает несколько таблиц (слоев) каждый раз, когда пользователь панорамирует/масштабирует карту. Когда я переместил SQL server в Hyper-V, я заметил, что при запросе одной из таблиц возникла задержка в несколько секунд. Я отключил эту таблицу от запросов, а затем другая таблица стала медленной и т. д.

странно, отбрасывая и создавая любой пространственный индекс любой таблицы в БД (даже тот, который я не запрашиваю), производительность волшебным образом становится молниеносной, пока я перезагрузитесь или создайте новое соединение.

Я попытался использовать сквозной диск, но это не имело никакого значения. Эта" ошибка " не возникает на том же оборудовании при запуске собственного SQL server (не виртуальный). Я также попробовал Hyper-V на другом настольном ПК, и я также попробовал SQL 2014 Express, но получил ту же проблему.

есть ли другие настройки Hyper-V / SQL, которые я могу попробовать? Есть ли объяснение, почему удаление и создание индекса временно устраняет проблема?

3
задан Damien
06.12.2022 18:00 Количество просмотров материала 2637
Распечатать страницу

1 ответ

к сожалению, это, кажется, стоимость виртуализации в некоторых сценариях. Если вы работаете с динамической памятью, которая использует драйвер воздушного шара памяти, попробуйте настроить виртуальную машину, чтобы иметь определенный объем оперативной памяти. Наблюдайте за использованием памяти и Хоста и гостя. Если вы видите, что память все больше и больше расходуется, попробуйте отключить блокировку страниц в памяти. Одна вещь, что вы можете попробовать все гости выключен и хозяин недавно обутый, просто ботинок на одного гостя с SQL. если запросы выполняются так, как они должны, тогда другие гостевые машины грабят эту виртуальную машину необходимых ресурсов. Это может произойти, когда сервер не правильно подобранного и довольно часто. Чтобы обойти эту проблему, добавьте дополнительный массив дисков и выделите его только для этой виртуальной машины. Другой способ обмануть систему - использовать кэширование SSD для базы данных. Несколько других вещей, которые следует учитывать, если вы завершаете работу службы SQL и используете такой инструмент, как UltraDefrag, и запускаете полную оптимизацию и дефрагментацию, то восстановите службу, если запрос выполняется быстрее. Вы можете получить UltraDefrag, который является открытым исходным кодом и бесплатно наhttp://ultradefrag.sf.net наконец, у Microsoft есть бумага, с которой вы можете проверить свои конфигурации. Проверить: http://www.slideshare.net/ManuelCastro8/high-performance-sql-server-workloads-on-hyper-v

еще одна вещь, чтобы попытаться использовать ESXi вместо Hyper-V, или последний Hyper-V 2012 R2.

наконец, с полной версия SQL какая точная версия выполняется? Какая именно ОС запускается для гостя и Хоста? Установлены ли последние версии служб integration services?

1
отвечен Brad 2022-12-08 01:48

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх