powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / выявление "тяжелый" запросов
23 сообщений из 23, страница 1 из 1
выявление "тяжелый" запросов
    #40079155
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет
ребята подскажите пожалуйста как можно выявить топ запросов которые тратят больше всего ресурсов?
топ 10 по косту
топ 10 по времени выполнения
топ 10 нагрузка на диски
топ 10 запросов для работы которых потребовалось больше всего дискового пространства на tempdb (то есть из-за которыхз выросла база tempdb)

Может у кого есть уже наработки
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079163
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

sys.dm_exec_query_stats

касательно статистики использования tempdb сможете получить только в момент выполнения запросов, хранения в разрезе отдельных запросов на моей памяти нет, если не настраивать отдельные xEvent
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079170
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

подскажите пожалуйста а как можно получить информацию по запросам которые увеличивают tempdb на тек момент?
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079171
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

за это отвечают два представления
sys.dm_db_session_space_usage
sys.dm_db_task_space_usage

можете погуглить что нибудь в формулировке приближенной к: sql server track queries consuming tempdb
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079229
flexgen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist
привет
ребята подскажите пожалуйста как можно выявить топ запросов которые тратят больше всего ресурсов?
топ 10 по косту
топ 10 по времени выполнения
топ 10 нагрузка на диски
топ 10 запросов для работы которых потребовалось больше всего дискового пространства на tempdb (то есть из-за которыхз выросла база tempdb)

Может у кого есть уже наработки


Версия SQL Server какая? Начиная с версии SQL 2016 появился Query store feature , который предназначен для мониторинга производительности SQL Server.
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079252
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

Тут поищите, может что пригодится
https://www.sql.ru/blogs/dwh/1119
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079253
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучшего за бесплатно еще не придумали. http://whoisactive.com/
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079277
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079321
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет
спасибо всем за отчеты
но в большинстве они предлагают возможность узнать какой из запросов осуществляет запись в tempdb на текущий момент
мне же нужно собрать некую статистику по запросам и в начале рабочего дня выгрузить отчет - какие запросы больше остальных использовали пространство на tempdb за вчерашний день

был пример запроса тут https://qastack.ru/dba/19870/how-to-identify-which-query-is-filling-up-the-tempdb-transaction-log
но там запрос предполагает выполнение в цикле и далее я в этом цикле через merge могу обновлять и добавлять запросы и собирать статистику, но что-то как-то такой подход не совсем мне кажется рациональным

xEvent - как с помощью него добиться нужного мне результата совсем не понял
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079339
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter
Лучшего за бесплатно еще не придумали. http://whoisactive.com/


sp_blitzwho тоже очень неплох и в некоторых случаях выручал, когда sp_whoisactive "висел"
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079381
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

а смысл? Что вы намерены делать с запросами, которые используют tempdb? А если это разовый запрос? Копаете где светло, по-моему, а не где потеряли.
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079386
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,
как в чем смысл? есть запрос который периодически забивает пространство на диске путем увеличения размеров tempdb, хочу выявить его ( и выявлять подобные в будущем)
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079391
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

Так, всё сообщение не осилили, видимо. Тогда вопросы по частям: Что вы намерены делать с запросами, которые используют tempdb?
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079491
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist
Владислав Колосов,
как в чем смысл? есть запрос который периодически забивает пространство на диске путем увеличения размеров tempdb, хочу выявить его ( и выявлять подобные в будущем)


так вам в таком случае не нужно каждую сессию мониторить сколько она потребляет места в tempdb

создайте xEvent что то типа такого:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
create event session [tempdb_growth] on server
ADD EVENT sqlserver.database_file_size_change  (
      ACTION (sqlserver.session_id, sqlserver.sql_text, sqlserver.transaction_id, sqlserver.tsql_stack, sqlserver.username)
      WHERE ([database_id] = 2)
ADD TARGET package0.ring_buffer
WITH (MAX_MEMORY=4096 KB, EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS, MAX_DISPATCH_LATENCY=30 SECONDS, MAX_EVENT_SIZE=0 KB, MEMORY_PARTITION_MODE=NONE, TRACK_CAUSALITY=OFF, STARTUP_STATE=OFF);

alter event session [tempdb_growth] on server with STATE = START;
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079541
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

если автор - администратор сервера, то правильным решением было бы начать процедуру по закупке дисков, вместо "охоты на ведьм".
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079549
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

ну скажем так: иногда полезно знать - кто вредитель.
у меня были прецеденты когда горе-пользователи запускали нерегламентированный запрос с огромным выходным набором order by на конце.
было довольно неприятно наблюдать такую картину и в итоге пользователи получили по шапке и больше так не делали.
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079552
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

это единичные случаи, они отлавливаются в ходе появления инцидента, на регулярной основе нет смысла делать контроль. Если рабочие процессы устоялись, то надо только следить за местом на дисках.
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079565
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

мне бы хотелось это знать заранее, если вижу, что запрос потребляем много пространства, я бы получил письмо и сразу начал реагировать

не думаю, что хорошим решением будет получить инфу когда уже все весит, все жалуются и запрос "виновник" уже отработал (особенно если это будет в выходные)

Было бы здорово получить ответ на вопрос как, а не на вопрос зачем
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079569
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist
Владислав Колосов,

мне бы хотелось это знать заранее, если вижу, что запрос потребляем много пространства, я бы получил письмо и сразу начал реагировать

не думаю, что хорошим решением будет получить инфу когда уже все весит, все жалуются и запрос "виновник" уже отработал (особенно если это будет в выходные)

Было бы здорово получить ответ на вопрос как, а не на вопрос зачем


Дело не в том, заранее вы будете знать или постфактум, все дело в том, что вы с этим запросом планируете делать? Kill SPID?

Это может быть аналитический отчет, который аналитик строит для топов к важному собранию, и вам скажут, что его сейчас срубать нельзя. А система должна продолжать быстро работать, что тогда будете делать?

Вот тут и начнется самое интересное, именно к этому вам предлагают перейти сразу.
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079579
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в MSSQL есть что-то типа AWR отчета (как в оракле) ?
Т.е. пришел утром на работу, посмотрел типа AWR-отчета за последние сутки, сделал анализ трудных запросов.
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079584
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СА,

именно это и пытаюсь реализовать на скуле

по поводу того, что с ним делать. Есть запрос который периодически заполняет tempdb.. это это аналитический запрос который заполняется 1 раз и его убивать нельзя, ну тогда ок. Если нет - я постараюсь его оптимизировать и сделать так чтобы он не заполнял tempdb - очевидно ведь
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079591
georgy_2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sandist,

Есть хорошие скрипты от парня по имени BrentOzar, там очень много полезный статей и скриптов по выявлению "тяжелых" запросов.
https://www.brentozar.com/blitzcache/

А вообще весь интернет забит скриптами
...
Рейтинг: 0 / 0
выявление "тяжелый" запросов
    #40079676
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

авторсделать так чтобы он не заполнял tempdb

В целом, это невыполнимая задача, т.к. временные данные надо где-то хранить, например, а их объем, очевидно, зависит от выборки. 99.9% выборок правильные, то есть запросы пишут с пониманием того, что нужно выбрать, "всё по всему во всех базах" - это единичные случаи. Объем данных растет, растет и потребление tempdb.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / выявление "тяжелый" запросов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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