powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Дедлоки с Intent Locks объектов
16 сообщений из 41, страница 2 из 2
Дедлоки с Intent Locks объектов
    #39749992
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123,
а вот ещё:
авторПросто там несколько сканирований индексов и 91% у одного удивило.
А чем этот план не актуальный? Данные из кеша.

там ещё окажется на эти update триггер который шерстит всю таблицу. Просто так эти update не будут просить SIX
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39749995
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Danionбаза в AlwaysOn. Как-то может влиять?Может. С включением RCSI будут проблемы - http://www.sqlnuggets.com/blog/change-the-isolation-level-of-an-availability-group-database/
DanionПо нему настроен первичный ключ таблицы.ПК и есть первичный ключ.
Эта вереница update'ов одинаковая в каждой транзакции? Т.е. апдейтятся одни и те же строки?
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39749999
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и то верно.
актуальный кэш --> актуальный план.
не осетрина, понимаешь, "второй свежести"
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39750001
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKПросто так эти update не будут просить SIXSIX просит select, а не update.
Потому что в момент запроса S на страницу уже имеется IX на этой странице.
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39750007
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmTaPaKПросто так эти update не будут просить SIXSIX просит select, а не update.
Потому что в момент запроса S на страницу уже имеется IX на этой странице.
это звучит как то странно
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39750020
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
use tempdb;
go

create table dbo.t(id int primary key, v int);
insert into dbo.t values (1, 1);
go

begin tran;
update dbo.t set v = 2 where id = 1;
exec sp_lock @@spid;
select * from dbo.t with (paglock, repeatableread) where id = 1;
exec sp_lock @@spid;
commit;
go

drop table dbo.t;
go
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39750025
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm,

не очень похоже на "простой" select, ну да ладно.
По схеме же six уже предоставлен до select?
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39750031
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKне очень похоже на "простой" select, ну да ладно.Хинты добавлены исключительно для демонстрации эффекта, а не для "усложнения" select'а.
TaPaKПо схеме же six уже предоставлен до select?На основании чего такой вывод?
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39750060
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmTaPaKне очень похоже на "простой" select, ну да ладно.Хинты добавлены исключительно для демонстрации эффекта, а не для "усложнения" select'а.
TaPaKПо схеме же six уже предоставлен до select?На основании чего такой вывод?
Как-то так, поправьте : sp 3316 уже удерхивает SIX на page ...662 и хочет S на page ... 658. Как получили SIX из всего предоставленного не видно
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39750085
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKКак получили SIX из всего предоставленного не видноОчень даже видно.
SIX - не отдельная блокировка, а комбинация блокировок S и IX. Как она получается, см. пример выше.
Но это вообще не важно: в контексте данного дедлока ее можно интерпретировать просто как IX.
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39750089
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmTaPaKКак получили SIX из всего предоставленного не видноОчень даже видно.
SIX - не отдельная блокировка, а комбинация блокировок S и IX. Как она получается, см. пример выше.
Но это вообще не важно: в контексте данного дедлока ее можно интерпретировать просто как IX.
Ок, т.е. лечить теоретическии изысканиями?
Тогда да, RSCII и следующий
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39750102
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
От меня ещё какая-то информация сейчас нужна?

А то пока разбираюсь на другом сервере с "бонусами" 1С. Хотя похоже там проблема с ОС.
Кстати, если кто встречал похожее:

Ночью были массовые изменения в базе 1С erp. Там авто прирост включен, стандартные 10% + ограничение в 2 097 152, по сути не ограничено. Лог базы нормально рос, а потом:
C:\SQL\erp_log.ldf: Operating system error 665(The requested operation could not be completed due to a file system limitation) encountered.
И пошли The transaction log for database 'erp' is full due to 'LOG_BACKUP'. до бекапа лога, после ожидаемо нормально.

На диске меньше 10% места не становилось. И это больше 10% от размера лога.

Попробовал увеличить файл руками на ГБ - MODIFY FILE encountered operating system error 665(The requested operation could not be completed due to a file system limitation) while attempting to expand the physical file 'C:\SQL\erp_log.ldf'.
На 1 МБ позволило. Почитал по ошибке, пишут, что одной из возможной причин является фрагментация диска, проверил - сейчас там 42% фрагментация.
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39750162
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DanionОт меня ещё какая-то информация сейчас нужна?Вопрос был тут - 21768041

Можете попробовать переписать как-то так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
            SELECT
             ...
            FROM
             (
              select top (cast(0x7fffffff as int))
               ...
              from
               n_OrderDetail od
               JOIN OrdersToExport ote ON ote.order_num = od.order_num
              WHERE
               ote.order_num = @P1
              order by
               od.serv_id
             ) ttt
             LEFT loop JOIN n_order_marketing_complex_service omcs ON omcs.order_num = ttt.order_num AND omcs.complex_id = ttt.serv_id
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39750228
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЭта вереница update'ов одинаковая в каждой транзакции? Т.е. апдейтятся одни и те же строки?

Разрабы говорят, что действие одинаковое. SET [total]=:yp0, [bonuses]=:yp1 для какого-то aid
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39750254
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DanionРазрабы говорят, что действие одинаковоеЯ имел в виду перечень aid'ов один и тот же в конкурирующих сессиях?
Ладно, не важно.

1. Индекс переделайте вот так:
Код: sql
1.
2.
3.
4.
5.
CREATE NONCLUSTERED INDEX [in_n_order_marketing_complex_service$complex_id$order_num$service_id$price$total] ON [dbo].[n_order_marketing_complex_service]
 ([complex_id], [order_num], [service_id])
INCLUDE
 ([price], [total])
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, drop_existing = on) ON [PRIMARY]

Если сочетание (complex_id, order_num, service_id) уникально, то и индекс сделайте уникальным.
Если уникально (complex_id, order_num), то service_id оставьте в include и тоже индекс сделайте уникальным.

2. Перепишите эту пачку update'ов так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
with t as
(
 select top (cast(0x7fffffff as int))
 from
  [dbo].[n_order_marketing_complex_service]
 where
  aid in (3028507, 3028504, ..., 3028506)
 order by
  complex_id, order_num, aid
)
update t
 set
  [total] = :yp0, [bonuses] = :yp1;



3. Если п.2 неприменим, перепишите select как показано тут - 21768307 , добавив к сортировке order_num.

Вообще, с учетом увиденного и DanionТранзакция с кучей действий с разным таблицами, один из этапов которой в первом посте с селектами.Напрашивается RCSI, что бы не расставлять костыли на каждом шагу или приводить код в адекватный вид.
...
Рейтинг: 0 / 0
Дедлоки с Intent Locks объектов
    #39750310
Danion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,
Спасибо за советы, посмотрим, что можно применить.
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Дедлоки с Intent Locks объектов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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