|
|
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
Почему запрос выполняется так долго? Если из запроса убрать хотя бы одно ограничение, то время выполнения запроса будет менее секунды. Как с этим бороться? MS SQL 2016 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 06:49:25 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
ExB, Прикольно 4 ляма процентов :) Обновите статистику, посмотрите на план, вас не смущает что у вас к примеру в первом Nested Loop слева ожидаемое кол-во строк 797, фактическое 35 лямов. Или у вас parametr sniffing. Когда вы убераете одно из условий из where в принципе вполне логично, что у вас выполняется быстрее. В select вы выбираете только данные из t0, стлбцы остальных таблиц используются только в join и where, вполне вероятно что убрав к примеру t1].[Quantity] > @p4, SQL способен использовать индекс котрый наверника есть на [t1].[FkProduct], также вполне вероятно что убрав какое-либо условие, т.е. у вас таблица используется только в Join, SQL может применить Simplification при оптимизации, т.е. если у вас есть две таблица и есть FK, SQL и так знает что для каждой строки в таблицы "приемнике" есть строка в таблице "родителе" и просто не будет ее даже читать когда вы делаете inner join по этим столбцам. Но это отступление, у вас основное конечно факт и ожидание разнятся просто колоссально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 08:05:52 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
aleksrov, вот эти 4 ляма процентов меня очень смущают. Статистика обновляется каждую ночь при создании бэкапа. Ручное обновление статистики не дает результата. Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 09:11:18 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
ExB, Тогда выложите сюда этот план. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 09:13:47 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
ExB, А если условия засунуть в JOIN ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 10:29:37 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
vboretsExB, А если условия засунуть в JOIN ? это всё менят OPTION(RECOMPILE) или план не картинкой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 10:39:20 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
ExBaleksrov, вот эти 4 ляма процентов меня очень смущают. Статистика обновляется каждую ночь при создании бэкапа. Ручное обновление статистики не дает результата. Код: sql 1. 2. 3. 4. а если обновить полностью with fullscan ? Очень уже похоже на криву статистику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 11:35:21 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
WarAnt, Не, скорее всего sniffing. Разница между 800 и 35 лямов уж совсем большая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 11:45:01 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
ExB, Для начала попробуйте заменить все переменные на константы и посмотрите на ожидаемое vs реальное количество строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 00:28:00 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
А план такой: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 03:34:22 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
При замене переменных @p3 или @p1 на константы запрос выполняется мгновенно. При замене остальных переменных на константы изменений не замечено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 03:40:14 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
Вот такая статистика запросов если @p1 заменить на константу: (извиняюсь за широкоформатные изображения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 03:52:26 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
TaPaKvboretsExB, А если условия засунуть в JOIN ? это всё менят OPTION(RECOMPILE) или план не картинкой OPTION(RECOMPILE) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 08:42:27 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
Всегда было интересно - что имеется в виду под "фактическим"? На выборы пришло 110% населения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 13:15:43 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
ExB, Перепишите соединения на вложенные и добавьте условия в соединение. Исчезнут nested loops и все будет работать мгновенно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 19:58:26 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
nvvExB, Перепишите соединения на вложенные и добавьте условия в соединение. Исчезнут nested loops и все будет работать мгновенно. очень врядли. Такие простые условия соединения оптимизатор сам переставит как сочтет нужным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 23:00:57 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
А если так? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 23:52:48 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
nvvExB, Перепишите соединения на вложенные и добавьте условия в соединение. Исчезнут nested loops и все будет работать мгновенно. впечатляет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2018, 10:54:32 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
OPTION(RECOMPILE) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2018, 10:40:40 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
nvvExB, Перепишите соединения на вложенные и добавьте условия в соединение. Исчезнут nested loops и все будет работать мгновенно. nvv, это предлагается сделать так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Если да, то не помогло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2018, 10:43:02 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
ExBnvvExB, Перепишите соединения на вложенные и добавьте условия в соединение. Исчезнут nested loops и все будет работать мгновенно. Если да, то не помогло Какой смысл что-то переписывать если оптимизатор тупо не видит значений параметров? Правильный ответ уже сказали выше - OPTION(RECOMPILE) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 00:08:14 |
|
||
|
Долгое выполнение SQL запроса, количество обработанных записей превышает фактическое
|
|||
|---|---|---|---|
|
#18+
Решение OPTION(RECOMPILE) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2018, 10:57:25 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39619806&tid=1690029]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
176ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 456ms |

| 0 / 0 |
