powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите разобраться с оптимизацией запросов
13 сообщений из 38, страница 2 из 2
Помогите разобраться с оптимизацией запросов
    #40051007
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa
А как вы это увидели?
Статистика ожиданий в корневом итераторе плана: PAGEIOLATCH_SH и SOS_SCHEDULER_YIELD
...
Рейтинг: 0 / 0
Помогите разобраться с оптимизацией запросов
    #40051011
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критик

А зачем нафигачили столько одинаковых индексов?
1,3
2,4,5


там могут быть инклюды
sp_helpindex их не показывает

подобные "дубли" вполне могут оказаться покрывающими для каких-то отдельных запросов
надо смотреть статистику использования, имхо
...
Рейтинг: 0 / 0
Помогите разобраться с оптимизацией запросов
    #40051032
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm
teCa
А как вы это увидели?
Статистика ожиданий в корневом итераторе плана: PAGEIOLATCH_SH и SOS_SCHEDULER_YIELD


Выполнил dbcc sqlperf(waitstats), смотрю на поле SOS_SCHEDULER_YIELD, примерно час назад скидывал статистику ожиданий, на данный момент такое значение имею в поле Wait Time: 6355340.

Правильно я понимаю, что это время в миллисекундах запросы ожидали "доступа" к процессору?
...
Рейтинг: 0 / 0
Помогите разобраться с оптимизацией запросов
    #40051041
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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/
...
Рейтинг: 0 / 0
Помогите разобраться с оптимизацией запросов
    #40051044
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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/

Перед вашим ответом, еще раз сбрасывал статистику...
...
Рейтинг: 0 / 0
Помогите разобраться с оптимизацией запросов
    #40051051
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa

Перед вашим ответом, еще раз сбрасывал статистику...

тогда надо подождать некоторое время (зависит от типичной нагрузки)
иначе смысла в таких "моментальных" срезах нет

если хотите узнать статистику по сессиям - смотрите sys.dm_exec_session_wait_stats
...
Рейтинг: 0 / 0
Помогите разобраться с оптимизацией запросов
    #40051056
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad
teCa

Перед вашим ответом, еще раз сбрасывал статистику...

тогда надо подождать некоторое время (зависит от типичной нагрузки)
иначе смысла в таких "моментальных" срезах нет

если хотите узнать статистику по сессиям - смотрите sys.dm_exec_session_wait_stats


Спасибо большое за полезную информацию!
...
Рейтинг: 0 / 0
Помогите разобраться с оптимизацией запросов
    #40051077
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa
komrad
пропущено...

тогда надо подождать некоторое время (зависит от типичной нагрузки)
иначе смысла в таких "моментальных" срезах нет

если хотите узнать статистику по сессиям - смотрите sys.dm_exec_session_wait_stats


Спасибо большое за полезную информацию!


Прежде, чем "оптимизировать" - надо научиться писать запросы.
Ловля блох в густой шерсти планов - бесперспективна, пока пишущий рисует такие конструкции

Код: sql
1.
2.
3.
4.
5.
aTable1 as t1 left outer join ( select x from aTable2 group by x) as t2 on  t1.x = t2.x

-- в оригинале
	FROM db_Matrix.DBO.tblSuperMain AS tsm WITH(NOLOCK)
	LEFT JOIN reservs r ON tsm.PartnerID = r.PartnerId AND tsm.BookID = r.BookId
...
Рейтинг: 0 / 0
Помогите разобраться с оптимизацией запросов
    #40051084
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
teCa
пропущено...


Спасибо большое за полезную информацию!


Прежде, чем "оптимизировать" - надо научиться писать запросы.
Ловля блох в густой шерсти планов - бесперспективна, пока пишущий рисует такие конструкции

Код: sql
1.
2.
3.
4.
5.
aTable1 as t1 left outer join ( select x from aTable2 group by x) as t2 on  t1.x = t2.x

-- в оригинале
	FROM db_Matrix.DBO.tblSuperMain AS tsm WITH(NOLOCK)
	LEFT JOIN reservs r ON tsm.PartnerID = r.PartnerId AND tsm.BookID = r.BookId



Как часто бывает в практике DBA, одни пишут - другим приходится оптимизировать.
Очень был бы рад поднять свой скил в выявлении неоптимальных запросов как DBA, но согласен, что было бы гораздо проще, если бы я имел скил продвинутого разработчика t-sql.
...
Рейтинг: 0 / 0
Помогите разобраться с оптимизацией запросов
    #40051095
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa

Спасибо большое за полезную информацию!


вот описание самых типичных вейтов
https://www.sqlskills.com/blogs/paul/worrying-wait-type/
...
Рейтинг: 0 / 0
Помогите разобраться с оптимизацией запросов
    #40051127
Александр Бердышев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 мс.
...
Рейтинг: 0 / 0
Помогите разобраться с оптимизацией запросов
    #40051129
Александр Бердышев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас не мог получиться прирост производительности просто от того, что таблицы закешировались?
...
Рейтинг: 0 / 0
Помогите разобраться с оптимизацией запросов
    #40051131
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Бердышев
У вас не мог получиться прирост производительности просто от того, что таблицы закешировались?

нет, внесенное исправление изменило логику запроса

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1334016&msg=22289774
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите разобраться с оптимизацией запросов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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