|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
Всем привет. Давно хотел разобраться в технике оптимизации запросов, и вот представился случай. Есть вот такая вьюха: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Выполняю такой запрос: Код: sql 1. 2. 3.
Пот полученный результат: авторВремя синтаксического анализа и компиляции SQL Server: время ЦП = 0 мс, истекшее время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. Время синтаксического анализа и компиляции SQL Server: время ЦП = 0 мс, истекшее время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. (затронуто строк: 1000) Таблица "Workfile". Сканирований 0, логических операций чтения 0, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Worktable". Сканирований 0, логических операций чтения 0, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblSuperMain". Сканирований 1, логических операций чтения 172, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblSub". Сканирований 2774, логических операций чтения 12318, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblOperHist". Сканирований 17449, логических операций чтения 52432, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblOperation". Сканирований 2, логических операций чтения 3408, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Partner". Сканирований 1, логических операций чтения 15, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Type". Сканирований 1, логических операций чтения 2, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "PartnerSource". Сканирований 0, логических операций чтения 2, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. (затронута одна строка) Время работы SQL Server: Время ЦП = 375 мс, затраченное время = 999 мс. Время синтаксического анализа и компиляции SQL Server: время ЦП = 0 мс, истекшее время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. Время выполнения: 2021-03-04T10:44:04.2216785+03:00 План запроса во вложении. Можем с вами поэтапно разобрать, на что следует обратить внимание, и какие действия стоит предпринять для оптимизации. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 11:12 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
teCa, Таблица "tblOperHist". Сканирований 17449 CAST(toh.StateDate AS DATE) < CAST(GETDATE() AS DATE) - плохое выражение, создайте persisted колонку для CAST(toh.StateDate AS DATE) и проиндексируйте или перефразируйте выражение без преобразование к типу дата. Также индекс нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 11:53 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
teCa, а покажите Код: sql 1.
в базе db_Spisanie ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 12:58 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
komrad teCa, а покажите Код: sql 1.
в базе db_Spisanie ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 13:38 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
1. Почти половина затраченного времени ушла на ожидание SOS_SCHEDULER_YIELD, т.е. проблемы с процессорным ресурсом 2. Неверная оценка кардинальности предиката oper.fldState NOT IN (8, 9). Попробуйте заменить на oper.fldState < 8 or oper.fldState > 9 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 13:39 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
Владислав Колосов Таблица "tblOperHist". Сканирований 17449 Владислав Колосов CAST(toh.StateDate AS DATE) < CAST(GETDATE() AS DATE) - плохое выражение, создайте persisted колонку для CAST(toh.StateDate AS DATE) и проиндексируйте или перефразируйте выражение без преобразование к типу дата. Также индекс нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 13:41 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
invm 2. Неверная оценка кардинальности предиката oper.fldState NOT IN (8, 9). Попробуйте заменить на oper.fldState < 8 or oper.fldState > 9 Данная корректировка дала значительный прирост: авторТаблица "Worktable". Сканирований 0, логических операций чтения 0, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Type". Сканирований 12, логических операций чтения 24, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblOperation". Сканирований 0, логических операций чтения 32850, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblSub". Сканирований 1274, логических операций чтения 47309, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Partner". Сканирований 0, логических операций чтения 2548, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "PartnerSource". Сканирований 0, логических операций чтения 2548, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblSuperMain". Сканирований 5, логических операций чтения 206, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Worktable". Сканирований 0, логических операций чтения 0, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. (затронута одна строка) Время работы SQL Server: Время ЦП = 187 мс, затраченное время = 114 мс. Время синтаксического анализа и компиляции SQL Server: время ЦП = 0 мс, истекшее время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 14:00 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
invm 2. Неверная оценка кардинальности предиката oper.fldState NOT IN (8, 9). Попробуйте заменить на oper.fldState < 8 or oper.fldState > 9 похоже что план не от указанного запроса - 8-ки нет <ScalarOperator ScalarString="[db_Spisanie].[dbo].[tblOperation].[fldDate] as [oper].[fldDate]>=dateadd(day,(-30),CONVERT(date,getdate(),0)) AND ([db_Spisanie].[dbo].[tblOperation].[fldState] as [oper].[fldState]<(9) OR [db_Spisanie].[dbo].[tblOperation].[fldState] as [oper].[fldState]>(9))"> ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 14:59 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
komrad 8-ки нет ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 15:04 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
invm komrad 8-ки нет вижу, спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 15:07 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
invm 2. Неверная оценка кардинальности предиката oper.fldState NOT IN (8, 9). Попробуйте заменить на oper.fldState < 8 or oper.fldState > 9 Можете объяснить, почему oper.fldState NOT IN (8, 9) медленнее чем oper.fldState < 8 or oper.fldState > 9? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 15:16 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
teCa komrad teCa, а покажите Код: sql 1.
в базе db_Spisanie сравните 2-й и 4-й индексы - могут оказаться полными дубликатами ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 15:17 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
teCa Можете объяснить, почему oper.fldState NOT IN (8, 9) медленнее чем oper.fldState < 8 or oper.fldState > 9? NOT IN (8, 9) - берет из индекса строки с oper.fldState < 8 и oper.fldState > 8 и потом отфильтровывает строки с oper.fldState = 9 oper.fldState < 8 or oper.fldState > 9 - скорее всего, сразу берет из индекса строки с oper.fldState < 8 и oper.fldState > 9 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 15:31 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
invm teCa Можете объяснить, почему oper.fldState NOT IN (8, 9) медленнее чем oper.fldState < 8 or oper.fldState > 9? NOT IN (8, 9) - берет из индекса строки с oper.fldState < 8 и oper.fldState > 8 и потом отфильтровывает строки с oper.fldState = 9 oper.fldState < 8 or oper.fldState > 9 - скорее всего, сразу берет из индекса строки с oper.fldState < 8 и oper.fldState > 9 Спасибо за разъяснение, прикладываю новый план. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 15:41 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
teCa прикладываю новый план. https://www.sql.ru/forum/actualfile.aspx?id=22289688] Приложенный файл (vwWriteOffRezerv_V3.zip - 12Kb) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 16:16 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
invm teCa прикладываю новый план. https://www.sql.ru/forum/actualfile.aspx?id=22289688] Приложенный файл (vwWriteOffRezerv_V3.zip - 12Kb) Странно, ошибиться не мог. Текст вьюхи с исправлением NOT IN Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
Вызов: Код: sql 1. 2. 3.
Статистика: авторВремя синтаксического анализа и компиляции SQL Server: время ЦП = 0 мс, истекшее время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. Время синтаксического анализа и компиляции SQL Server: время ЦП = 0 мс, истекшее время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. (затронуто строк: 1000) Таблица "Worktable". Сканирований 0, логических операций чтения 0, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Type". Сканирований 9, логических операций чтения 18, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblOperation". Сканирований 0, логических операций чтения 50485, физических операций чтения 2, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblSub". Сканирований 1421, логических операций чтения 71145, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Partner". Сканирований 0, логических операций чтения 2842, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "PartnerSource". Сканирований 0, логических операций чтения 2842, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblSuperMain". Сканирований 5, логических операций чтения 211, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 75, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Worktable". Сканирований 0, логических операций чтения 0, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. (затронута одна строка) Время работы SQL Server: Время ЦП = 358 мс, затраченное время = 182 мс. Время синтаксического анализа и компиляции SQL Server: время ЦП = 0 мс, истекшее время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. План во вложении ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 16:25 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
В общем затраченное время уменьшилось за счет параллелизма. И форма плана стала другой. Кстати, предложение top может влиять на форму плана. К тому же, у вас там ошибка. Нужно Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 16:47 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
invm В общем затраченное время уменьшилось за счет параллелизма. И форма плана стала другой. Кстати, предложение top может влиять на форму плана. К тому же, у вас там ошибка. Нужно Код: sql 1. 2.
Действительно, после добавления скобок производительность вернулась к прежним значениям. авторВремя синтаксического анализа и компиляции SQL Server: время ЦП = 0 мс, истекшее время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. Время синтаксического анализа и компиляции SQL Server: время ЦП = 0 мс, истекшее время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. (затронуто строк: 1000) Таблица "Workfile". Сканирований 0, логических операций чтения 0, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Worktable". Сканирований 0, логических операций чтения 0, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblSuperMain". Сканирований 1, логических операций чтения 172, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblSub". Сканирований 2906, логических операций чтения 12891, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblOperHist". Сканирований 17593, логических операций чтения 52885, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblOperation". Сканирований 2, логических операций чтения 1759, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Partner". Сканирований 1, логических операций чтения 15, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Type". Сканирований 1, логических операций чтения 2, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "PartnerSource". Сканирований 0, логических операций чтения 2, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. (затронута одна строка) Время работы SQL Server: Время ЦП = 515 мс, затраченное время = 1354 мс. Время синтаксического анализа и компиляции SQL Server: время ЦП = 0 мс, истекшее время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 16:59 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
Покажите план для Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 17:53 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
invm Покажите план для Код: sql 1.
-22871429 Простите за глупый вопрос, что это и для чего? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 09:07 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
teCa, У Вас же вроде бы план попросили, а не результат запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 09:20 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
А зачем нафигачили столько одинаковых индексов? 1,3 2,4,5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 09:30 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
Jhonny-2005 teCa, У Вас же вроде бы план попросили, а не результат запроса. Действительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:05 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
teCa, 1. Поудаляйте ненужные индексы 2. Создайте индекс, рекомендованный в последнем плане. 3. У вас нехватка ресурсов (CPU и память) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:49 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
invm teCa, 3. У вас нехватка ресурсов (CPU и память) А как вы это увидели? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 10:52 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
teCa А как вы это увидели? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 11:20 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
Критик А зачем нафигачили столько одинаковых индексов? 1,3 2,4,5 там могут быть инклюды sp_helpindex их не показывает подобные "дубли" вполне могут оказаться покрывающими для каких-то отдельных запросов надо смотреть статистику использования, имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 11:30 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
invm teCa А как вы это увидели? Выполнил dbcc sqlperf(waitstats), смотрю на поле SOS_SCHEDULER_YIELD, примерно час назад скидывал статистику ожиданий, на данный момент такое значение имею в поле Wait Time: 6355340. Правильно я понимаю, что это время в миллисекундах запросы ожидали "доступа" к процессору? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 12:40 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
teCa invm пропущено... Статистика ожиданий в корневом итераторе плана: PAGEIOLATCH_SH и SOS_SCHEDULER_YIELD Выполнил dbcc sqlperf(waitstats), смотрю на поле SOS_SCHEDULER_YIELD, примерно час назад скидывал статистику ожиданий, на данный момент такое значение имею в поле Wait Time: 6355340. Правильно я понимаю, что это время в миллисекундах запросы ожидали "доступа" к процессору? статистику лучше не скидывать вручную - это статистика по всему серверу и она может/будет отличаться от сессионной и тем более для вашего запроса лучше выполните скрипт отсюда и покажите результат https://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/ ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 13:17 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
komrad teCa пропущено... Выполнил dbcc sqlperf(waitstats), смотрю на поле SOS_SCHEDULER_YIELD, примерно час назад скидывал статистику ожиданий, на данный момент такое значение имею в поле Wait Time: 6355340. Правильно я понимаю, что это время в миллисекундах запросы ожидали "доступа" к процессору? статистику лучше не скидывать вручную - это статистика по всему серверу и она может/будет отличаться от сессионной и тем более для вашего запроса лучше выполните скрипт отсюда и покажите результат https://www.sqlskills.com/blogs/paul/wait-statistics-or-please-tell-me-where-it-hurts/ Перед вашим ответом, еще раз сбрасывал статистику... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 13:27 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
teCa Перед вашим ответом, еще раз сбрасывал статистику... тогда надо подождать некоторое время (зависит от типичной нагрузки) иначе смысла в таких "моментальных" срезах нет если хотите узнать статистику по сессиям - смотрите sys.dm_exec_session_wait_stats ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 13:52 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
komrad teCa Перед вашим ответом, еще раз сбрасывал статистику... тогда надо подождать некоторое время (зависит от типичной нагрузки) иначе смысла в таких "моментальных" срезах нет если хотите узнать статистику по сессиям - смотрите sys.dm_exec_session_wait_stats Спасибо большое за полезную информацию! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 14:00 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
teCa komrad пропущено... тогда надо подождать некоторое время (зависит от типичной нагрузки) иначе смысла в таких "моментальных" срезах нет если хотите узнать статистику по сессиям - смотрите sys.dm_exec_session_wait_stats Спасибо большое за полезную информацию! Прежде, чем "оптимизировать" - надо научиться писать запросы. Ловля блох в густой шерсти планов - бесперспективна, пока пишущий рисует такие конструкции Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 14:29 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
aleks222 teCa пропущено... Спасибо большое за полезную информацию! Прежде, чем "оптимизировать" - надо научиться писать запросы. Ловля блох в густой шерсти планов - бесперспективна, пока пишущий рисует такие конструкции Код: sql 1. 2. 3. 4. 5.
Как часто бывает в практике DBA, одни пишут - другим приходится оптимизировать. Очень был бы рад поднять свой скил в выявлении неоптимальных запросов как DBA, но согласен, что было бы гораздо проще, если бы я имел скил продвинутого разработчика t-sql. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 14:51 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
teCa Спасибо большое за полезную информацию! вот описание самых типичных вейтов https://www.sqlskills.com/blogs/paul/worrying-wait-type/ ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 15:13 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
teCa invm 2. Неверная оценка кардинальности предиката oper.fldState NOT IN (8, 9). Попробуйте заменить на oper.fldState < 8 or oper.fldState > 9 Данная корректировка дала значительный прирост: авторТаблица "Worktable". Сканирований 0, логических операций чтения 0, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Type". Сканирований 12, логических операций чтения 24, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblOperation". Сканирований 0, логических операций чтения 32850, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblSub". Сканирований 1274, логических операций чтения 47309, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Partner". Сканирований 0, логических операций чтения 2548, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "PartnerSource". Сканирований 0, логических операций чтения 2548, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "tblSuperMain". Сканирований 5, логических операций чтения 206, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. Таблица "Worktable". Сканирований 0, логических операций чтения 0, физических операций чтения 0, операций чтения страничного сервера 0, операций чтения, выполненных с упреждением 0, операций чтения страничного сервера, выполненных с упреждением 0, логических операций чтения LOB 0, физических операций чтения LOB 0, операций чтения LOB страничного сервера 0, операций чтения LOB, выполненных с упреждением 0, операций чтения LOB страничного сервера, выполненных с упреждением 0. (затронута одна строка) Время работы SQL Server: Время ЦП = 187 мс, затраченное время = 114 мс. Время синтаксического анализа и компиляции SQL Server: время ЦП = 0 мс, истекшее время = 0 мс. Время работы SQL Server: Время ЦП = 0 мс, затраченное время = 0 мс. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 16:57 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
У вас не мог получиться прирост производительности просто от того, что таблицы закешировались? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 16:58 |
|
Помогите разобраться с оптимизацией запросов
|
|||
---|---|---|---|
#18+
Александр Бердышев У вас не мог получиться прирост производительности просто от того, что таблицы закешировались? нет, внесенное исправление изменило логику запроса https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1334016&msg=22289774 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2021, 17:00 |
|
|
start [/forum/moderation_log.php?user_name=rdssdg]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
others: | 690ms |
total: | 904ms |
0 / 0 |