Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 nonclustered index пытается наложить блокировку на кластерный индекс  [new]
sergei64_89
Member

Откуда:
Сообщений: 296
select id from request where isdeleted = 1 and RequestStatusID=3 and AutoDistributeDateTime< GETDATE()

Выборка происходит по некластерному индексу(согласно плану запроса Index seek(non clustered))
Получаю дедлок с другим запросом(update), согласно логу выше указанный запрос пытается получить доступ к кластерному индексу(доступ - S)
Зачем ему кластерный индекс,если в плане запроса указан некластерный индекс и key lookup отсутствует?

К сообщению приложен файл. Размер - 21Kb
1 дек 16, 13:30    [19955120]     Ответить | Цитировать Сообщить модератору
 Re: nonclustered index пытается наложить блокировку на кластерный индекс  [new]
TaPaK
Member

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

а состав индекса нам угадать?
1 дек 16, 13:31    [19955129]     Ответить | Цитировать Сообщить модератору
 Re: nonclustered index пытается наложить блокировку на кластерный индекс  [new]
msLex
Member

Откуда:
Сообщений: 8730
sergei64_89,

Чудес не бывает, план показывайте план и скрипты индексов
1 дек 16, 13:33    [19955155]     Ответить | Цитировать Сообщить модератору
 Re: nonclustered index пытается наложить блокировку на кластерный индекс  [new]
sergei64_89
Member

Откуда:
Сообщений: 296
msLex, индекс:
CREATE NONCLUSTERED INDEX [idx_Request_AutoDistribution] ON [dbo].[Request]
(
[AutoDistributeDateTime] ASC,
[RequestStatusID] ASC
)
INCLUDE ( [ID],
[IsDeleted]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

Предполагаю что ID надо убрать вообще(так как это ключ кластерного индекса и по идее он автоматически включается) и IsDeleted вынести из включенных столбцов. Но всё равно непонятно почему он просит кластерный индекс

К сообщению приложен файл. Размер - 6Kb
1 дек 16, 14:31    [19955585]     Ответить | Цитировать Сообщить модератору
 Re: nonclustered index пытается наложить блокировку на кластерный индекс  [new]
TaPaK
Member

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

а полная картина выглядит как селект + апдейт и это 2х транзакциях? гадалки нынче в цене
1 дек 16, 14:51    [19955726]     Ответить | Цитировать Сообщить модератору
 Re: nonclustered index пытается наложить блокировку на кластерный индекс  [new]
sergei64_89
Member

Откуда:
Сообщений: 296
TaPaK,да в разных.
1 дек 16, 14:56    [19955758]     Ответить | Цитировать Сообщить модератору
 Re: nonclustered index пытается наложить блокировку на кластерный индекс  [new]
sergei64_89
Member

Откуда:
Сообщений: 296
Тут вопрос почему запросу который имеет покрытие некластерным индексом вдруг понадобился как тот так и кластерный
1 дек 16, 14:59    [19955773]     Ответить | Цитировать Сообщить модератору
 Re: nonclustered index пытается наложить блокировку на кластерный индекс  [new]
TaPaK
Member

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

так дело не пойдёт, показывайте граф
1 дек 16, 14:59    [19955775]     Ответить | Цитировать Сообщить модератору
 Re: nonclustered index пытается наложить блокировку на кластерный индекс  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
точнее xml
1 дек 16, 15:00    [19955779]     Ответить | Цитировать Сообщить модератору
 Re: nonclustered index пытается наложить блокировку на кластерный индекс  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
sergei64_89,

Ваши картинки ни о чем.
Показывайте граф в xml-ном виде. И присовокупьте планы запросов, вытащенные из кеша по sql_handle, взятым из графа.
1 дек 16, 15:04    [19955812]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить