powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Периодическое "замирание" запроса
15 сообщений из 15, страница 1 из 1
Периодическое "замирание" запроса
    #39929289
sPaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
select @@version
Microsoft SQL Server 2017 (RTM-CU18) (KB4527377) - 14.0.3257.3 (X64)



В хранимой процедуре в цикле рассчитываются/перекладываются данные.
"Замирание" (на несколько часов) выполнения процедуры возникает примерно на таком фрагменте кода:
Код: sql
1.
2.
insert dbo.table
select * from #table1, #table2, #table3


Хотя до "замирания" этот фрагмент (при тех же объемах данных) отрабатывал примерно за 15 секунд.
Т.е., условно, стартовало выполнение процедуры, в цикле указанный фрагмент кода выполнялся раз 100 довольно шустро, но на 101-ом цикле "замер".
Кое что из sys.dm_exec_requests:
Код: sql
1.
2.
3.
select * from from sys.dm_exec_requests
status - runnable/running
last_wait_type - SOS_SCHEDULER_YIELD



Подскажите, пожалуйста, куда "копать", чтобы понять происходящее на сервере?

На сервере достаточно конкурирующих сессий.
Прямо сейчас наблюдаю "замирание". Поэтому готов сейчас предоставить инфу из системных таблиц и пр.
...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39929292
sPaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку: блокирующих сессий нет.
...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39929298
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sPaul
Подскажите, пожалуйста, куда "копать", чтобы понять происходящее на сервере?
Либо блокировки, либо меняется план запроса.

Блокировки можно смотреть либо sys.dm_exec_requests, либо просто sp_who2 (или sp_whoisactive)

Планы можно посмотреть в кэше планов, вот, можно взять отсюда:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT TOP(50) DB_NAME(t.[dbid]) AS [Database Name], t.[text] AS [Query Text], 
	cp.objtype AS [Object Type], cp.cacheobjtype AS [Cache Object Type],  
	cp.size_in_bytes/1024 AS [Plan Size in KB],
	sys.dm_exec_query_plan(cp.plan_handle) as query_plan
FROM sys.dm_exec_cached_plans AS cp WITH (NOLOCK)
	CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS t
WHERE cp.cacheobjtype = N'Compiled Plan'
	AND cp.objtype IN (N'Adhoc', N'Prepared') 
	AND cp.usecounts = 1
ORDER BY cp.size_in_bytes DESC, DB_NAME(t.[dbid]) OPTION (RECOMPILE);
...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39929301
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
можно взять отсюда
В смысле, это образец; нужно написать запрос, показывающий возможные планы вашего долго исполняющегося запроса.
...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39929316
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sPaul,
с точки зрения операционки - диск, процессор,память - во время затыка никаких чрезмерных нагрузок не наблюдается?
...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39929320
sPaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Другие сессии не блокируют.

Показатели сессии:
CPU вырос (за 3 часа) с 6,442,447 до 15,109,630,
reads c 578,098,448 до 858,954,475,
physical_reads с 282,324 до 294,467.
Продолжаю наблюдение...

Кэшированный план процедуры есть, вижу соотв. строку, но query_plan пустой.
...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39929326
sPaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(Со слов админ. СУБД) чрезмерных нагрузок на дисковую подсистему нет. CPU не на 100% загружен, пиками.
...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39929329
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sPaul
Код: sql
1.
2.
3.
select * from from sys.dm_exec_requests
status - runnable/running
last_wait_type - SOS_SCHEDULER_YIELD

Если только это в процессе "замирания", то сервер занимается строительством декартового произведения и во временных таблицах достаточно много строк.
sPaul
Код: sql
1.
select * from #table1, #table2, #table3

...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39929359
sPaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cross join-ов нет. Сотни тыс. строк в таблицах.
...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39929364
londinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sPaul
Cross join-ов нет.


та ну.. А вот это:
Код: sql
1.
2.
insert dbo.table
select * from #table1, #table2, #table3
...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39929366
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sPaul
Cross join-ов нет. Сотни тыс. строк в таблицах.


декартово произведение трех таблиц с 100000 записей в каждой дает набор данных в 10 15 записей
...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39929370
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
туть смотрели?
...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39929377
sPaul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любой запрос, что при прочих равных условиях отрабатывает шустро (15 сек.) почти всегда. Почему почти? - 100 раз отработал, на 101-й как бы "замер", наблюдаю уже 4 часа. Хотелось бы понять, почему.
Пусть фрагмент кода будет такой:
Код: sql
1.
2.
3.
4.
5.
insert dbo.table
select * 
from #table1 t1 
join #table2 t2 on t2.id_pk = t1.id_fk2
join #table3 t3 on t3.id_pk = t1.id_fk3
...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39929383
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sPaul,
и тут посмотрите
...
Рейтинг: 0 / 0
Периодическое "замирание" запроса
    #39930375
Idol_111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sPaul,

похоже на проблемы с памятью. Даже при том же плане выделяться может разный размер памяти в зависимости от текущего состояния системы. Слегка ошибся/другие_параметры и уже полезли в темпДБ.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Периодическое "замирание" запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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