powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / На одном сервере запрос выполняется 1 сек, на другом этот же запрос - 80 секунд - SQL Serv
4 сообщений из 4, страница 1 из 1
На одном сервере запрос выполняется 1 сек, на другом этот же запрос - 80 секунд - SQL Serv
    #39628933
ribastar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Есть большущий запрос для формирования отчёта, где-то около 22 джоинов, сам запрос не важно даже какой. На одном сервере он выполняется 1 секунду, а на другом - 80 секунд. (В выборке 150 строк всего).

На сервере, где скорость равна 1 секунде, план запросов показывает, что все соединения идут Nested loop`ами и без распараллеливания. На втором сервере, где 80 секунд, план запроса показывает, что почти все соединения идут через Hash join и сам запрос распараллелен на 2 работника. Если я на втором сервере добавлю к запросу OPTION (MAXDOP 1), то время выполнения запроса уменьшается до 7 секунд, но это тоже очень очень долго для 150 строк, собираемых из 15 таблиц без сложных фильтров. Думаю если добавить хинты на принудительное использование Nested loops, то всё будет нормально, но это явно не правильное поведение.

Вопрос:
Почему так происходит, что оптимизатор выбирает явно не оптимальную стратегию? Что и где мне можно проверить, какие действия можно выполнить, чтобы второй сервер работал аналогично первому?
...
Рейтинг: 0 / 0
На одном сервере запрос выполняется 1 сек, на другом этот же запрос - 80 секунд - SQL Serv
    #39628938
AlanDenton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Базы идентичные и настройки для них? Статистика тоже идентичная? TF никакие не включаются? Настройки параллелизма по дефолту? и тд. там можно до бесконечности.

Планы смотреть надо и статистику обновить коль что.
...
Рейтинг: 0 / 0
На одном сервере запрос выполняется 1 сек, на другом этот же запрос - 80 секунд - SQL Serv
    #39628945
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ribastar,

и версии серверов конечно одинаковые? Обновите статистики для начала
...
Рейтинг: 0 / 0
На одном сервере запрос выполняется 1 сек, на другом этот же запрос - 80 секунд - SQL Serv
    #39628974
ribastar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, вот что я сделал:
1. Проверил параметры серверов, они отличались, на втором сервере тупо было ограничение оперативной памяти на 4 гб от максимального, отключил ограничение.
2. Отключил в параметрах сервера параметра Use Windows fibers (советуют почти никогда его не использовать)
3. Обновил вручную статистику ключей и индексов

Теперь и планы и время выполнения стали очень похожи!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / На одном сервере запрос выполняется 1 сек, на другом этот же запрос - 80 секунд - SQL Serv
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]