Herman<T>.Instance Ответов: 1

План запросов Sql server


Привет ребята,

У меня очень медленная хранимая процедура, и queryplan показывает мне что-то странное. Он использует индексированный кластер на таблице в схеме sys -> sys.query_notification_1626853258.

<Object Database="[TDMS-TEST]" Schema="[sys]" Table="[query_notification_1626853258]" Index="[cidx]" IndexKind="Clustered" Storage="RowStore" />
                           <RelOp AvgRowSize="2463" EstimateCPU="80.1192" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="1" LogicalOp="Aggregate" NodeId="41" Parallel="false" PhysicalOp="Hash Match" EstimatedTotalSubtreeCost="466.54">
                             <OutputList>
                               <ColumnReference Database="[TDMS-TEST]" Schema="[sys]" Table="[query_notification_1626853258]" Column="id" />
                               <ColumnReference Database="[TDMS-TEST]" Schema="[sys]" Table="[query_notification_1626853258]" Column="dialog" />
                               <ColumnReference Database="[TDMS-TEST]" Schema="[sys]" Table="[query_notification_1626853258]" Column="sid" />
                               <ColumnReference Database="[TDMS-TEST]" Schema="[sys]" Table="[query_notification_1626853258]" Column="ssb_service" />
                               <ColumnReference Database="[TDMS-TEST]" Schema="[sys]" Table="[query_notification_1626853258]" Column="ssb_instance" />
                               <ColumnReference Database="[TDMS-TEST]" Schema="[sys]" Table="[query_notification_1626853258]" Column="message" />
                             </OutputList>


Но такой таблицы нет ни в sys, ни в какой другой базе данных. Что такое клев и как его решить?

Что я уже пробовал:

Все индексы перестраиваются, все хранимые процедуры перекомпилируются. а теперь?

0x01AA

Похоже, у вас есть несколько подписчиков для уведомлений о запросах?
Смотрите, например, здесь: цитата:Уведомление о запросе с использованием SqlDependency и SqlCacheDependency[^]

Herman&lt;T&gt;.Instance

Да, я действительно использую подписку на уведомления. Они не используются ни в одной хранимой процедуре, но план запроса test_insert говорит, что он используется там, где nr оценочных строк увеличивается с 1 до 17 миллионов и более. (Это кажется 4 секунд работы)

1 Ответов

Рейтинг:
0

MadMyche

sys.query_notification_1626853258 это общее имя для экземпляра Query_Notification.

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

https://support.microsoft.com/en-us/help/975090/fix-deadlocks-may-occur-when-multiple-concurrent-query-notification-su[^]

SQL 2012 SP1 создает взаимоблокировки в системе sys.уведомления о запросах[^]


Maciej Los

5ed!

Herman&lt;T&gt;.Instance

Я использую SQL Server 2014......

MadMyche

Все еще хорошие вещи для чтения и вещи, чтобы посмотреть ТАТ, может быть, отключить уведомление о запросе и посмотреть, что произойдет. Возможно, повторный анализ индексов был бы полезен. Не знаю, не копаясь в этом

Herman&lt;T&gt;.Instance

Странная ситуация заключается в том, что sp не было никаких проблем до прошлой недели!
Если я сделаю резервную копию этой базы данных и восстановлю ее на своем собственном sql-сервере, проблема тоже исчезнет. DBCC Checkdb не показывает никаких проблем.

Herman&lt;T&gt;.Instance

отключение en reenabling службы notificationservice ничего не сделало. Возможно, перезагрузите SQl-сервер

MadMyche

Возможно; в настоящее время это выглядит как какая-то конфигурация или проблема с SQL-сервером.

Herman&lt;T&gt;.Instance

Может быть, какой-то фоновый процесс блокирует это. Я не вижу ничего блокирующего с sp_who (2). У нас действительно бывают тупики.