Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Непонятный waitresource  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Доброго времени суток!

СУБД: Sql Server 2014 Enterprice

кратковременно скаканула нагрузка, кол-о подключений от одного пользователя резко выросло, параллельно выполнялась одна и та же процедура, однако были несколько процессов этой процедуры с такими показателями:

open_tranquery_textlastwaittypewaitresourcecpuwaittimephysical_ioblocked
0COMMITLCK_M_SCH_MMD: database_id = N   INVALID(INVALID) lockPartitionId = 0000


Кто нибудь знает что за waitresource такой?
Остальные процессы были в ожидании WriteLog, у всех blocked = 0
6 фев 17, 13:35    [20184382]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
andrew shalaev,

судя по колонкам это ваш запрос, а не оригинал dmv - вот и посмотрите откуда взялось такое сообщение
6 фев 17, 13:49    [20184489]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
TaPaK,
Причем тут мой запрос?
Мне непонятно значение: MD: database_id = N INVALID(INVALID) lockPartitionId = 0
6 фев 17, 14:30    [20184728]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
andrew shalaev
TaPaK,
Причем тут мой запрос?
Мне непонятно значение: MD: database_id = N INVALID(INVALID) lockPartitionId = 0

при том что на заборе написать можно всё что угодно. а в оригинале в sys.dm_exec_requests скорее всего как минимум просто ''
6 фев 17, 14:31    [20184736]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
TaPaK,

Колонка waitresource получена из sys.sysprocesses, вы думаете я сам придумал это значение?
6 фев 17, 14:38    [20184774]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
andrew shalaev
TaPaK,

Колонка waitresource получена из sys.sysprocesses, вы думаете я сам придумал это значение?

я в этом уверен. При blocked = 0 ни sys.sysprocesses нет ничего
6 фев 17, 14:42    [20184797]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
TaPaK
я в этом уверен. При blocked = 0 ни sys.sysprocesses нет ничего


Я не понял, что вы написали.
6 фев 17, 14:45    [20184815]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
andrew shalaev
TaPaK
я в этом уверен. При blocked = 0 ни sys.sysprocesses нет ничего


Я не понял, что вы написали.

при помощи какого запроса вы это получили
6 фев 17, 14:54    [20184880]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
TaPaK,
select    
                               spid,
                               loginame,                           
                               case 
                               when s.program_name like '%0x%' 
                               then 'Job: '+ j.name 
                               else s.program_name 
                               end 
                               as [program_name],
                               s.last_batch,
                               datediff(second,last_batch, getdate()) as [duration],
                               cmd, 
                               s.open_tran, 
                               db_name(txt.dbid) [database], 
                               object_schema_name(txt.objectid, txt.dbid) +'.'+object_name(txt.objectid, txt.dbid) current_object,

                                              case when qs.sql_handle IS NULL
                           then ' '
                           else ( substring(txt.text,(qs.statement_start_offset+2)/2,(
                              case when qs.statement_end_offset = -1        
                              then len(convert(nvarchar(MAX),txt.text))*2      
                                                                                                                else qs.statement_end_offset    end - qs.statement_start_offset) /2  ) )
               end as query_text, 
                               hostname,
                               s.lastwaittype,
                               s.[waitresource],
                               s.[cpu],
                               s.[waittime],
                               s.[physical_io],
                               s.[blocked],
                convert(xml, pl.query_plan) _plan,
                               s.status
                
from sys.sysprocesses s with (nolock)
left join sys.dm_exec_requests qs  with (nolock) on s.spid = qs.session_id
left join msdb.dbo.sysjobs j with (nolock) on j.job_id = case when s.program_name like '%0x%' then convert( binary(16), substring( s.program_name, 30, 34 ), 1 ) else 0x00 end
outer APPLY sys.dm_exec_sql_text(s.sql_handle) txt
outer apply sys.dm_exec_text_query_plan(qs.plan_handle, qs.statement_start_offset, qs.statement_end_offset    ) pl
where  s.spid > 50 and s.status <> 'sleeping' and s.spid <> @@spid and s.program_name <> 'Microsoft® Windows® Operating System'
6 фев 17, 15:01    [20184940]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
andrew shalaev
Колонка waitresource получена из sys.sysprocesses
В waitresource не может быть значения при waittime = 0. Значение lockPartitionId = 0 в столбце cpu тоже вызывает вопросы.
Проверяйте ваш запрос - что и откуда он берет.

Что касается самого значения waitresource - префикс MD означает metadata.
6 фев 17, 15:02    [20184951]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
"lockPartitionId = 0" поди к wait_resource относится, уехал из-за запятой.
6 фев 17, 15:06    [20184987]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
В столбце cpu стоит 0, в первом посте я ошибся при составлении здесь таблицы, как я уже писал поле waitresource содержит:
MD: database_id = N INVALID(INVALID) lockPartitionId = 0

Где N это db_id, просто убрал цифру

Вопрос в том знает ли кто что это значит?
6 фев 17, 15:06    [20184990]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
andrew shalaev,

sys.sysprocesses не даёт тких ожиданий. максимум это выдранный кусок из DBCC PAGE, но никак не из вашего запроса
6 фев 17, 15:17    [20185054]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
andrew shalaev
Вопрос в том знает ли кто что это значит?
Это запрос на блокировку метаданных (схемы) в БД с database_id = N. Какого именно объекта эти метаданные определить невозможно.
6 фев 17, 15:23    [20185085]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
TaPaK
andrew shalaev,

sys.sysprocesses не даёт тких ожиданий. максимум это выдранный кусок из DBCC PAGE, но никак не из вашего запроса
Это вы из документации почерпнули? Тгда дайте почитать, что может, а чего не может возвращать OpenRowSet(TABLE SYSPROCESSES), из которого идет выборка в sys.sysprocesses.
6 фев 17, 15:24    [20185087]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Гавриленко Сергей Алексеевич
TaPaK
andrew shalaev,

sys.sysprocesses не даёт тких ожиданий. максимум это выдранный кусок из DBCC PAGE, но никак не из вашего запроса
Это вы из документации почерпнули? Тгда дайте почитать, что может, а чего не может возвращать OpenRowSet(TABLE SYSPROCESSES), из которого идет выборка в sys.sysprocesses.


https://support.microsoft.com/uk-ua/help/224453/inf-understanding-and-resolving-sql-server-blocking-problems
6 фев 17, 15:26    [20185094]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
TaPaK
Гавриленко Сергей Алексеевич
пропущено...
Это вы из документации почерпнули? Тгда дайте почитать, что может, а чего не может возвращать OpenRowSet(TABLE SYSPROCESSES), из которого идет выборка в sys.sysprocesses.


https://support.microsoft.com/uk-ua/help/224453/inf-understanding-and-resolving-sql-server-blocking-problems
Во-первых, это статья для up to 2008. Во-вторых, ткните в место, где написано "only". В-третьих, нотариально заверенный скриншот с waitresource, которого "не может быть":

К сообщению приложен файл. Размер - 28Kb
6 фев 17, 15:30    [20185122]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
-Гвоздь-
Guest
Гавриленко Сергей Алексеевич,

У вас это - Рекомпиляция с ожиданием автообновления статистики ?
6 фев 17, 15:33    [20185139]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
-Гвоздь-
Гавриленко Сергей Алексеевич,

У вас это - Рекомпиляция с ожиданием автообновления статистики ?
Хз, просто поселектил на предмет того, какие бывают waitresource. Там еще много всякого, типа:

ACCESS_METHODS_DATASET_PARENT (0000029C21C088A0)
NESTING_TRANSACTION_FULL (0000000000000000)
6 фев 17, 15:35    [20185147]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
invm
В waitresource не может быть значения при waittime = 0.
Это утверждение, кстати, тоже не верно:

К сообщению приложен файл. Размер - 30Kb
6 фев 17, 15:41    [20185204]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
Гавриленко Сергей Алексеевич
Это утверждение, кстати, тоже не верно
Соглашусь.
Такое сочетание возможно, например, для запросов с параллелизмом.
6 фев 17, 16:25    [20185450]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
Mr. X
Guest
andrew shalaev,

AutoClose?
6 фев 17, 17:01    [20185687]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
Mr. X,

Не понял вопроса.
6 фев 17, 17:04    [20185712]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
andrew shalaev,

ладно, а что sys.dm_exec_requests показывает?
6 фев 17, 17:08    [20185744]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный waitresource  [new]
andrew shalaev
Member

Откуда: Moscow
Сообщений: 610
TaPaK
andrew shalaev,

ладно, а что sys.dm_exec_requests показывает?



Проблема была разовая, пока ситуация не повторялась, вопрос у меня главным образом все ли в порядке с таблицей, она периодически перестраивается.
Меня напрягла блокировка уровня схемы и слова INVALID(INVALID).
6 фев 17, 17:18    [20185788]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить