Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
На одном сервере запрос выполняется 1 сек, на другом этот же запрос - 80 секунд - SQL Serv
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть большущий запрос для формирования отчёта, где-то около 22 джоинов, сам запрос не важно даже какой. На одном сервере он выполняется 1 секунду, а на другом - 80 секунд. (В выборке 150 строк всего). На сервере, где скорость равна 1 секунде, план запросов показывает, что все соединения идут Nested loop`ами и без распараллеливания. На втором сервере, где 80 секунд, план запроса показывает, что почти все соединения идут через Hash join и сам запрос распараллелен на 2 работника. Если я на втором сервере добавлю к запросу OPTION (MAXDOP 1), то время выполнения запроса уменьшается до 7 секунд, но это тоже очень очень долго для 150 строк, собираемых из 15 таблиц без сложных фильтров. Думаю если добавить хинты на принудительное использование Nested loops, то всё будет нормально, но это явно не правильное поведение. Вопрос: Почему так происходит, что оптимизатор выбирает явно не оптимальную стратегию? Что и где мне можно проверить, какие действия можно выполнить, чтобы второй сервер работал аналогично первому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 11:04 |
|
||
|
На одном сервере запрос выполняется 1 сек, на другом этот же запрос - 80 секунд - SQL Serv
|
|||
|---|---|---|---|
|
#18+
Базы идентичные и настройки для них? Статистика тоже идентичная? TF никакие не включаются? Настройки параллелизма по дефолту? и тд. там можно до бесконечности. Планы смотреть надо и статистику обновить коль что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 11:10 |
|
||
|
На одном сервере запрос выполняется 1 сек, на другом этот же запрос - 80 секунд - SQL Serv
|
|||
|---|---|---|---|
|
#18+
ribastar, и версии серверов конечно одинаковые? Обновите статистики для начала ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 11:22 |
|
||
|
На одном сервере запрос выполняется 1 сек, на другом этот же запрос - 80 секунд - SQL Serv
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, вот что я сделал: 1. Проверил параметры серверов, они отличались, на втором сервере тупо было ограничение оперативной памяти на 4 гб от максимального, отключил ограничение. 2. Отключил в параметрах сервера параметра Use Windows fibers (советуют почти никогда его не использовать) 3. Обновил вручную статистику ключей и индексов Теперь и планы и время выполнения стали очень похожи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 12:03 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=155&tid=1689941]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 422ms |

| 0 / 0 |
