Вход | Регистрация
 

Дедлок на таблице итогов (срез последних) подчиненного периодического регистра сведений

Дедлок на таблице итогов (срез последних) подчиненного периодического регистра сведений
Я
   TormozIT
 
18.11.21 - 15:12
Пишу новые документы в несколько потоков, в движениях которых заполняю набор записей периодического регистра сведений, для которого включено использование таблицы итогов среза последних.
При записи иногда возникает взаимоблокировка в СУБД MSSQL. В ней участвуют 2 запроса платформы.
Сначала выполняет запрос обновления существующих строк в таблице итогов lockMode="U"

UPDATE
    РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних
SET
    Период = RES.Период,
    Регистратор = RES.Регистратор,
    АдресРазгрузки = RES.АдресРазгрузки,
    ...
FROM
(
    
SELECT
    РегистрСведений.упРаботыПоРейсу.Период,
    РегистрСведений.упРаботыПоРейсу.Регистратор,
    РегистрСведений.упРаботыПоРейсу.Рейс,
    РегистрСведений.упРаботыПоРейсу.Идентификатор,
    РегистрСведений.упРаботыПоРейсу.ИдентификаторРаботы,
    РегистрСведений.упРаботыПоРейсу.СтрокаНомер,
    ...
FROM
    (
        SELECT
            РегистрСведений.упРаботыПоРейсу.Рейс,
            РегистрСведений.упРаботыПоРейсу.Идентификатор,
            РегистрСведений.упРаботыПоРейсу.ИдентификаторРаботы,
            РегистрСведений.упРаботыПоРейсу.СтрокаНомер,
            MAX(РегистрСведений.упРаботыПоРейсу.Период) MINMAX_PERIOD,
            РегистрСведений.упРаботыПоРейсу.ОбластьДанныхОсновныеДанные
        FROM РегистрСведений.упРаботыПоРейсу
         INNER JOIN #TmpRecordSet упРаботыПоРейсу_ИтогиСрезПоследних_ON
     РегистрСведений.упРаботыПоРейсу.Рейс = #TmpRecordSet.Рейс
     AND  РегистрСведений.упРаботыПоРейсу.Идентификатор = #TmpRecordSet.Идентификатор
     AND  РегистрСведений.упРаботыПоРейсу.ИдентификаторРаботы = #TmpRecordSet.ИдентификаторРаботы
     AND  РегистрСведений.упРаботыПоРейсу.СтрокаНомер = #TmpRecordSet.СтрокаНомер AND  РегистрСведений.упРаботыПоРейсу.ОбластьДанныхОсновныеДанные = #TmpRecordSet.ОбластьДанныхОсновныеДанные
        
        WHERE
РегистрСведений.упРаботыПоРейсу.Активность=TRUE
        GROUP BY
            РегистрСведений.упРаботыПоРейсу.Рейс,
            РегистрСведений.упРаботыПоРейсу.Идентификатор,
            РегистрСведений.упРаботыПоРейсу.ИдентификаторРаботы,
            РегистрСведений.упРаботыПоРейсу.СтрокаНомер,
            РегистрСведений.упРаботыПоРейсу.ОбластьДанныхОсновныеДанные
    ) RES1 INNER JOIN РегистрСведений.упРаботыПоРейсу упРаботыПоРейсу_ИтогиСрезПоследних_ON
            РегистрСведений.упРаботыПоРейсу.Рейс=RES1.Рейс
             AND РегистрСведений.упРаботыПоРейсу.Идентификатор=RES1.Идентификатор
             AND РегистрСведений.упРаботыПоРейсу.ИдентификаторРаботы=RES1.ИдентификаторРаботы
             AND РегистрСведений.упРаботыПоРейсу.СтрокаНомер=RES1.СтрокаНомер
             AND РегистрСведений.упРаботыПоРейсу.ОбластьДанныхОсновныеДанные=RES1.ОбластьДанныхОсновныеДанные
             AND РегистрСведений.упРаботыПоРейсу.Период=MINMAX_PERIOD
) RES
LEFT JOIN
РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних упРаботыПоРейсу_ИтогиСрезПоследних_ON
     РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних.Рейс = RES.Рейс
     AND  РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних.Идентификатор = RES.Идентификатор
     AND  РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних.ИдентификаторРаботы = RES.ИдентификаторРаботы
     AND  РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних.СтрокаНомер = RES.СтрокаНомер
     AND  РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних.ОбластьДанныхОсновныеДанные = RES.ОбластьДанныхОсновныеДанные
WHERE
     РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних.Период < RES.Период

А затем добавляет в нее новые строки lockMode="IX"

INSERT INTO РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних
(Период,Регистратор,Рейс,Идентификатор,ИдентификаторРаботы,СтрокаНомер,...)
VALUES
(
    
SELECT
РегистрСведений.упРаботыПоРейсу.Период,
РегистрСведений.упРаботыПоРейсу.Регистратор,
РегистрСведений.упРаботыПоРейсу.Рейс,
РегистрСведений.упРаботыПоРейсу.Идентификатор,
РегистрСведений.упРаботыПоРейсу.ИдентификаторРаботы,
РегистрСведений.упРаботыПоРейсу.СтрокаНомер,
...
FROM
    (
        SELECT
            РегистрСведений.упРаботыПоРейсу.Рейс,
            РегистрСведений.упРаботыПоРейсу.Идентификатор,
            РегистрСведений.упРаботыПоРейсу.ИдентификаторРаботы,
            РегистрСведений.упРаботыПоРейсу.СтрокаНомер,  
            MAX(РегистрСведений.упРаботыПоРейсу.Период) MINMAX_PERIOD,
            РегистрСведений.упРаботыПоРейсу.ОбластьДанныхОсновныеДанные
        FROM РегистрСведений.упРаботыПоРейсу
         INNER JOIN #TmpRecordSet упРаботыПоРейсу_ON
     РегистрСведений.упРаботыПоРейсу.Рейс = #TmpRecordSet.Рейс
     AND  РегистрСведений.упРаботыПоРейсу.Идентификатор = #TmpRecordSet.Идентификатор
     AND  РегистрСведений.упРаботыПоРейсу.ИдентификаторРаботы = #TmpRecordSet.ИдентификаторРаботы
     AND  РегистрСведений.упРаботыПоРейсу.СтрокаНомер = #TmpRecordSet.СтрокаНомер AND  РегистрСведений.упРаботыПоРейсу.ОбластьДанныхОсновныеДанные = #TmpRecordSet.ОбластьДанныхОсновныеДанные
        
WHERE    1 not in (SELECT TOP 1 1 FROM РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних
            WHERE

                #TmpRecordSet.Рейс = РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних.Рейс
                 AND #TmpRecordSet.Идентификатор = РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних.Идентификатор
                 AND #TmpRecordSet.ИдентификаторРаботы = РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних.ИдентификаторРаботы
                 AND #TmpRecordSet.СтрокаНомер = РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних.СтрокаНомер
                 AND #TmpRecordSet.ОбластьДанныхОсновныеДанные = РегистрСведений.упРаботыПоРейсу.ИтогиСрезПоследних.ОбластьДанныхОсновныеДанные)
        AND РегистрСведений.упРаботыПоРейсу.Активность=TRUE
        GROUP BY
            РегистрСведений.упРаботыПоРейсу.Рейс,
            РегистрСведений.упРаботыПоРейсу.Идентификатор,
            РегистрСведений.упРаботыПоРейсу.ИдентификаторРаботы,
            РегистрСведений.упРаботыПоРейсу.СтрокаНомер,
            РегистрСведений.упРаботыПоРейсу.ОбластьДанныхОсновныеДанные
    ) RES1 INNER JOIN РегистрСведений.упРаботыПоРейсу упРаботыПоРейсу_ON

            РегистрСведений.упРаботыПоРейсу.Рейс=RES1.Рейс
             AND РегистрСведений.упРаботыПоРейсу.Идентификатор=RES1.Идентификатор
             AND РегистрСведений.упРаботыПоРейсу.ИдентификаторРаботы=RES1.ИдентификаторРаботы
             AND РегистрСведений.упРаботыПоРейсу.СтрокаНомер=RES1.СтрокаНомер
             AND РегистрСведений.упРаботыПоРейсу.ОбластьДанныхОсновныеДанные=RES1.ОбластьДанныхОсновныеДанные
             AND РегистрСведений.упРаботыПоРейсу.Период=MINMAX_PERIOD)

При отключении таблицы итогов взаимоблокировка пропадает, но и падает скорость.

Перед этими запросами платформа накладывает управляемые блокировки

в табличном виде - https://docs.google.com/spreadsheets/d/1Ja7JUOdUL0CIr1veAocf9t2aVBMmMMGj7QmrV82nRNI/edit?usp=sharing

в текстовом виде -
РегистрСведений.упРаботыПоРейсу.DIMS Exclusive ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=80E66A26A526EC47907C8C8715EE08EC СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=83BF5E8C60902D459E4D0212118C84AB ИдентификаторРаботы=6B428AA4BE7F8242BD7B59E9053402D7 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=49EE899DF96DE341867FC4045C037EF2 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=B93EAF748539334F835596FDFA23C264 ИдентификаторРаботы=C8027CABFAE0DF4B98BB30148D4C080C СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=D8B17FAD16452C4E84AF3A20361B008B СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=D06ADE038AC4D64EB886ACF65343A73B ИдентификаторРаботы=74AB18848E2A8D428DFF905409AA6C13 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=49E769687480B94E9ED86B3DFFFABF7E СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=D06ADE038AC4D64EB886ACF65343A73B ИдентификаторРаботы=94355D6FD708A44C8894D402714AF08F СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=6D8C1487DB06B74F8EF0A2D471AF4261 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=17A3F0F2389F13448DD3B03F91335D38 ИдентификаторРаботы=E5FB057A8D4B1B48A398463F85F6B970 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=8AFCD43B8D32984A9EEDD42D7B2E83C0 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=5C7A7EF7B6D8C24488C6088CC0063F82 ИдентификаторРаботы=25785A9B43BFC94285A23152AE6ADD49 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=D34A8037C9688441A971AC435E1FA276 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=5C7A7EF7B6D8C24488C6088CC0063F82 ИдентификаторРаботы=14734180EAF77D46A53F50C11CFE93B6 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=C3DB4B35B72D164C8F29947BDEE83D46 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=D9B182335954A749A334C92C80E06088 ИдентификаторРаботы=EA4D4699FC30C74C87B5DA6CA76399CD СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=F465E57B02B29448B486D8B0E4C41898 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=D9A843F969D8D74E9DD12656861ED491 ИдентификаторРаботы=1D402F40B7D99C4986926B55C8A066C6 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=622F865C60011C43BCED4DC421E504A6 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=66DA54FD908E4B4CBB11281587D0BCF8 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=E5F6D4292935ED4397B17E535265B211 ИдентификаторРаботы=D9E9C63F1297674B93F2F8C96BD686DC СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=E5F6D4292935ED4397B17E535265B211 ИдентификаторРаботы=C03E30035222A94FA0BB34F6F5C2C5E6 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=93F1B4203B06E3419EA94B5999F49B88 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=A7F715091C15F74C8F201DB1246130F1 ИдентификаторРаботы=A13B6EF5665BF04CBEE04B38D0E29A46 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=8A0D71E8F249B849BFFCCECD0E42045F СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=A7F715091C15F74C8F201DB1246130F1 ИдентификаторРаботы=ED0FFE8C2B5E1946923504F5D1E97BBF СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=F3AC76D6531E6247A88A603A3A97C578 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=926F16D675507942A6C60996EFE43E26 ИдентификаторРаботы=96A89550187AEA4A9B02786AE3C5E87E СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=9C35802B437E02429A9059BC44BABBD0 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=0E81DE4AE97A404FA4E2A5095A98C113 ИдентификаторРаботы=6FF1F4A0FDAAEB4DA496695C2FC5B971 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=0C1979B5D519994C83C3C2754798481B СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=AE8F3657630DF54589170A1F653AC5F3 ИдентификаторРаботы=E3B9D26A751F074BBC7262BAC14F6089 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=1C3FB3A8E9354E44B7EC80C74EDE9EA3 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=4A1D9D8DB950CD49AD1688E29BA3951A ИдентификаторРаботы=70A89D629F9E65479F0569A417AE2268 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=CF84873DBDA0144283B02C40470685C0 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=F79711B7B838B445B1982D031119EE5D ИдентификаторРаботы=EFD0B55BE4399E459EA86518356D9F04 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=8EC02387797E3448B792AED32633585F СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=A59C0D72B9E2FB4BA2AD471D3443787A ИдентификаторРаботы=279DA863C93CFD4EA0EF75EEC41ED1CF СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=C8510EA15FA70D459AAFD22F80B9BEAF СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=1A500145A12E6C44A740D99193F0208E СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=96BF90244718C944829FFA2363BC1CC5 ИдентификаторРаботы=51FC12188F1BB540B9F3D8C54F9F42C0 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=96BF90244718C944829FFA2363BC1CC5 ИдентификаторРаботы=656EF35FEC1A7C4AA43CFDA9253003D1 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=E1CAC2DF6052BF45A7164C4BA3F10D00 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=DCF0AD8162B883468D0E9CC732F22580 ИдентификаторРаботы=441C60C3E4F1244DB98479F7BE60402A СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=C5A43E0333856F4E8A0448741F998D6A СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=EF9538C21FF44149858DE160307E9CCB ИдентификаторРаботы=5BDDC0E19497A549864E4752120F9FEA СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=7B80CC95BE4C2441B8DB075E3A3A92F2 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=F7A84DCCE10C5749A72EB83BF5F2543D ИдентификаторРаботы=681FB1D8C4936546BAB486C68EBD67A9 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=147607BC8B6F3E4AB14D28F12972F5F5 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=DCF0AD8162B883468D0E9CC732F22580 ИдентификаторРаботы=C3FA519324F9894C8831341B06766770 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=2CC8782F14F10F4CB6C1377179B58B51 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=DCF0AD8162B883468D0E9CC732F22580 ИдентификаторРаботы=48FBCBBC99CD604DA0A841234B491132 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=971A64331E2FB04482D4609DFD7256CF ИдентификаторРаботы=5C7E6AA30DD1D2408121D9F89B5A2DD1 СтрокаНомер=0 Период=T"20211118131412", ОбластьДанныхОсновныеДанные=0 Рейс=291:a2de107b4415472d11ec48584647de37 Идентификатор=BB46781ABBF23141B75A3BAAA74020C5 ИдентификаторРаботы=6F1687D79CC31C45A90721639869B4D8 СтрокаНомер=0 Период=T"20211118131412"

Помогите побороть дедлок с наименьшим ущербом для параллельности.
   polosov
 
1 - 18.11.21 - 15:17
(0) Выключить использование итогов, загрузиться, включить использование итогов.
   fisher
 
2 - 18.11.21 - 15:17
Я не настоящий сварщик, поэтому просто робко спрошу - параллелишь по разным измерениям?
   mikecool
 
3 - 18.11.21 - 15:20
(2) + без пересечений
   TormozIT
 
4 - 18.11.21 - 15:20
(1) Это не загрузка, а регулярно выполняемый код.
   polosov
 
5 - 18.11.21 - 15:20
Аа так уже делал. Не дочитал.
Это вообще постоянно будет загружаться или разовая акция?
   mikecool
 
6 - 18.11.21 - 15:21
"При отключении таблицы итогов взаимоблокировка пропадает, но и падает скорость. " - казалось бы скорость должна возрастать...
   ДенисЧ
 
7 - 18.11.21 - 15:22
(6) Скорость записи повышается, чтения - падает
   polosov
 
8 - 18.11.21 - 15:22
(4) Ну тогда попробуй покопать в сторону изменения архитектуры. Заведи РН с разделением итогов. Пиши при загрузке туда. Потом оттуда данные перегоняй в твой РС, если надо.
   H A D G E H O G s
 
9 - 18.11.21 - 15:36
(0) Какая версия платформы и совместимость?
   Добрыня Никитич
 
10 - 18.11.21 - 15:39
(0) Посмотри xml_deadlock_report в Extended Events system_health
   TormozIT
 
11 - 18.11.21 - 15:46
(9) 1С:Предприятие 8.3 (8.3.17.1851) совместимость 8.3.12
(10) Посмотрел
   TormozIT
 
13 - 18.11.21 - 16:58
Не победил. Пришлось отключить итоги в конфигурации.
   mistеr
 
14 - 18.11.21 - 17:02
(0) На каком именно объекте БД возникает ожидание?

(11) А нам покажешь?
   polosov
 
15 - 18.11.21 - 17:05
(13) Почему не захотел переехать на РН с разделением итогов? Это как раз и придумали для параллельной записи.
   TormozIT
 
16 - 18.11.21 - 17:11
(14)
<deadlock>
 <victim-list>
  <victimProcess id="process2187202f468" />
 </victim-list>
 <process-list>
  <process id="process2187202f468" taskpriority="0" logused="158528" waitresource="PAGE: 26:1:742300 " waittime="2995" ownerId="86206807" transactionname="user_transaction" lasttranstarted="2021-11-18T12:30:16.863" XDES="0x217903e6728" lockMode="U" schedulerid="3" kpid="6056" status="suspended" spid="87" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2021-11-18T12:30:17.913" lastbatchcompleted="2021-11-18T12:30:17.910" lastattention="1900-01-01T00:00:00.910" clientapp="1CV83 Server" hostname="SRV-AX-PCTEST01" hostpid="3916" loginname="sa" isolationlevel="read committed (2)" xactid="86206807" currentdb="26" lockTimeout="20000" clientoption1="671219744" clientoption2="128056">
   <executionStack>
    <frame procname="adhoc" line="1" stmtstart="98" stmtend="6558" sqlhandle="0x02000000ebbff238e79c1bc95d98fb311478fc261f5ae30b0000000000000000000000000000000000000000">
unknown    </frame>
    <frame procname="unknown" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown    </frame>
   </executionStack>
   <inputbuf>
(@P1 numeric(10),@P2 numeric(10),@P3 numeric(10))UPDATE T6 SET _Period = T1.Period_, _RecorderTRef = T1.RecorderTRef, _RecorderRRef = T1.RecorderRRef, _Fld5506RRef = T1.Fld5506RRef, _Fld12794RRef = T1.Fld12794RRef, _Fld5498 = T1.Fld5498_, _Fld5499 = T1.Fld5499_, _Fld5501 = T1.Fld5501_, _Fld5497 = T1.Fld5497_, _Fld5507 = T1.Fld5507_, _Fld5500RRef = T1.Fld5500RRef, _Fld5517 = T1.Fld5517_, _Fld5514 = T1.Fld5514_, _Fld12795RRef = T1.Fld12795RRef, _Fld5496RRef = T1.Fld5496RRef, _Fld5494RRef = T1.Fld5494RRef, _Fld11694 = T1.Fld11694_, _Fld5503 = T1.Fld5503_, _Fld5504 = T1.Fld5504_, _Fld5510 = T1.Fld5510_, _Fld5512 = T1.Fld5512_, _Fld5513 = T1.Fld5513_, _Fld5495RRef = T1.Fld5495RRef, _Fld10367 = T1.Fld10367_, _Fld5493 = T1.Fld5493_, _Fld5502 = T1.Fld5502_, _Fld5511RRef = T1.Fld5511RRef, _Fld5505RRef = T1.Fld5505RRef, _Fld5508RRef = T1.Fld5508RRef, _Fld5518RRef = T1.Fld5518RRef, _Fld5515 = T1.Fld5515_, _Fld5516RRef = T1.Fld5516RRef, _Fld5509RRef = T1.Fld5509RRef, _Fld12796_TYPE = T1.Fld12796_TYPE, _Fld12796_RTRef =    </inputbuf>
  </process>
  <process id="process2187204f088" taskpriority="0" logused="249772" waitresource="PAGE: 26:1:657547 " waittime="3364" ownerId="86212197" transactionname="user_transaction" lasttranstarted="2021-11-18T12:30:18.143" XDES="0x21758c7e408" lockMode="IX" schedulerid="7" kpid="10548" status="suspended" spid="92" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2021-11-18T12:30:19.810" lastbatchcompleted="2021-11-18T12:30:19.810" lastattention="1900-01-01T00:00:00.810" clientapp="1CV83 Server" hostname="SRV-AX-PCTEST01" hostpid="3916" loginname="sa" isolationlevel="read committed (2)" xactid="86212197" currentdb="26" lockTimeout="20000" clientoption1="671219744" clientoption2="128056">
   <executionStack>
    <frame procname="adhoc" line="1" stmtstart="226" stmtend="4940" sqlhandle="0x02000000b67219376c4c1f0c8459f3b08ef21566ce48756a0000000000000000000000000000000000000000">
unknown    </frame>
    <frame procname="unknown" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown    </frame>
   </executionStack>
   <inputbuf>
(@P1 numeric(10),@P2 numeric(10),@P3 numeric(10),@P4 numeric(10),@P5 numeric(10),@P6 numeric(10),@P7 numeric(10))INSERT INTO dbo._InfoRgSL5521 (_Period, _RecorderTRef, _RecorderRRef, _Fld5489RRef, _Fld5490, _Fld5491, _Fld5492, _Fld5506RRef, _Fld12794RRef, _Fld5498, _Fld5499, _Fld5501, _Fld5497, _Fld5507, _Fld5500RRef, _Fld5517, _Fld5514, _Fld12795RRef, _Fld5496RRef, _Fld5494RRef, _Fld11694, _Fld5503, _Fld5504, _Fld5510, _Fld5512, _Fld5513, _Fld5495RRef, _Fld10367, _Fld5493, _Fld5502, _Fld5511RRef, _Fld5505RRef, _Fld5508RRef, _Fld5518RRef, _Fld5515, _Fld5516RRef, _Fld5509RRef, _Fld12796_TYPE, _Fld12796_RTRef, _Fld12796_RRRef, _Fld563) SELECT
T5._Period,
T5._RecorderTRef,
T5._RecorderRRef,
T5._Fld5489RRef,
T5._Fld5490,
T5._Fld5491,
T5._Fld5492,
T5._Fld5506RRef,
T5._Fld12794RRef,
T5._Fld5498,
T5._Fld5499,
T5._Fld5501,
T5._Fld5497,
T5._Fld5507,
T5._Fld5500RRef,
T5._Fld5517,
T5._Fld5514,
T5._Fld12795RRef,
T5._Fld5496RRef,
T5._Fld5494RRef,
T5._Fld11694,
T5._Fld5503,
T5._Fld5504,
T5._Fld5510,
T5._Fld5512,
T5._Fld55   </inputbuf>
  </process>
 </process-list>
 <resource-list>
  <pagelock fileid="1" pageid="742300" dbid="26" subresource="FULL" objectname="StarykhTest2.dbo._InfoRgSL5521" id="lock21682097d80" mode="IX" associatedObjectId="72057594686668800">
   <owner-list>
    <owner id="process2187204f088" mode="IX" />
   </owner-list>
   <waiter-list>
    <waiter id="process2187202f468" mode="U" requestType="wait" />
   </waiter-list>
  </pagelock>
  <pagelock fileid="1" pageid="657547" dbid="26" subresource="FULL" objectname="StarykhTest2.dbo._InfoRgSL5521" id="lock217d3311680" mode="U" associatedObjectId="72057594686668800">
   <owner-list>
    <owner id="process2187202f468" mode="U" />
   </owner-list>
   <waiter-list>
    <waiter id="process2187204f088" mode="IX" requestType="wait" />
   </waiter-list>
  </pagelock>
 </resource-list>
</deadlock>
   mistеr
 
17 - 18.11.21 - 17:11
(4) При формировании движений используется срез последних?
   TormozIT
 
18 - 18.11.21 - 17:12
(17) Нет
   mistеr
 
19 - 18.11.21 - 17:18
(18) Тогда не очень понятно, почему без итогов падает скорость..
   mistеr
 
20 - 18.11.21 - 17:23
(16) Страничная блокировка — паршивый вариант.
ObjectId="72057594686668800" это кластерный индекс?
   mikecool
 
21 - 18.11.21 - 17:25
(20) страница же = 8Кб?
   mistеr
 
22 - 18.11.21 - 17:27
(21) Да
   TormozIT
 
23 - 18.11.21 - 18:16
(19) Падает скорость работы всех запросов суммарно.
   H A D G E H O G s
 
24 - 18.11.21 - 18:36
(23) Подчинен регистратору?
   Добрыня Никитич
 
25 - 18.11.21 - 18:41
(20) Если дедлок происходит на страницах, значит имела место эскалация?  
(0) попробуй отключить эскалацию блокировок флагом 1211
   mistеr
 
26 - 18.11.21 - 18:48
(24) Да, в заголовке указано.

(25) Вряд ли это первое, что стоит делать. Скорее последнее.
   Добрыня Никитич
 
27 - 18.11.21 - 18:49
(26) а что делать первое?
   Добрыня Никитич
 
28 - 18.11.21 - 18:55
(26) проверить паралеллизм?
   rsv
 
29 - 18.11.21 - 18:57
(0) странно . Есть итоги но 1с придумала сплиттера   только для
Табличек итогов регистра накопления и бухгалтерии…
   mistеr
 
30 - 18.11.21 - 19:24
(29) Все появляется по мере возникновения потребности. И разделители, и итоги регистра сведений, появившиеся не так давно. Возможно, появятся и разделители для них.
 
 
   pechkin
 
31 - 18.11.21 - 19:28
(30) как ты представляешь себе итоги по регистру сведений?
   Добрыня Никитич
 
32 - 18.11.21 - 19:32
(11) Поставь совместимость 8.3.13
Для регистров сведений реализовано формирование кластерного индекса по измерениям для физических таблиц среза первых и среза последних.
Повышена производительность работы физических таблиц срезов при большом количестве пользователей. Исключены взаимоблокировки при обновлениях физических таблиц срезов первых/последних.

Источник: https://dl05.1c.ru/content/Platform/8_3_20_1613/1cv8upd_8_3_20_1613.htm#0055064e-0a7f-11e8-a3f7-0050569f678a
   mistеr
 
33 - 18.11.21 - 19:44
(32) Отсутствие кластерного индекса все объясняет. :)
   mistеr
 
34 - 18.11.21 - 19:44
(31) Итоги или разделитель?
   pechkin
 
35 - 18.11.21 - 19:46
(34) оазделитель конечно же
   pechkin
 
36 - 18.11.21 - 19:48
(32) сколько раз они на это кластерный нарываются и все раано норовятся таблицы без него сделать
   mistеr
 
37 - 18.11.21 - 20:24
(35) Не задумывался об этом. Вот сейчас задумался, и... на первый взгляд, ничто не мешает. Другое дело, стоит ли овчинка выделки...
   pechkin
 
38 - 18.11.21 - 21:21
(37) у тебя тогда таблица итогов ничем от таблицы движений не будет отличаться
   mistеr
 
39 - 18.11.21 - 23:07
(38) Количеством строк, как минимум :)
   TormozIT
 
40 - 18.11.21 - 23:47
(32) Не могу. Встроенная БСП не дает.
   pechkin
 
41 - 19.11.21 - 08:20
(40) добавь кластерный на скуле
   TormozIT
 
42 - 19.11.21 - 09:10
(41) У меня тиражный продукт.
   pechkin
 
43 - 19.11.21 - 09:12
И что 8.3.13 даже нельзя поставить? Под 8.1 чтоли пишешь?
   TormozIT
 
44 - 19.11.21 - 12:45
У регистра есть индексированный ресурс "Задание". По нему соответственно в таблице итогов есть индекс, где он идет первым полем. Вот похоже на нем и идет страничное столкновение блокировок. Наложить управляемую блокировку на это поле платформа не предоставляет возможности. По идее она сама должна была наложить на него упр. блокировку. Но видимо забыли сделать.
   mistеr
 
45 - 19.11.21 - 13:34
(44) Похоже или на нем? ObjectId чей, ты так и не ответил?

И полную структуру регистра давай. Может и можно что-то сделать.
   Добрыня Никитич
 
46 - 19.11.21 - 13:54
(44) >>По идее она сама должна была наложить на него упр. блокировку. Но видимо забыли сделать.

Разве платформа накладывает управляемые блокировки на дополнительные индексы?
   TormozIT
 
47 - 20.11.21 - 18:24
(45) Где смотреть associatedObjectId ?
   TormozIT
 
48 - 20.11.21 - 18:30
(44) Проверил эту гипотезу с индексированным ресурсом.
Наложил в начале транзакции упр. блокировку по другому регистру сведений по всем значениям колонки "Задание". В этом регистре "Задание" является единственным измерением и нет периода. Параллельность снизилась.
Но не помогло. Значит дело не в нем.
   TormozIT
 
49 - 20.11.21 - 18:46
Структура регистра
Показан кластерный индекс почти весь и кратко 2 остальных индекса
https://i.imgur.com/M8YM0Hh.png
   TormozIT
 
50 - 20.11.21 - 18:49
(49) Точнее это не сам регистр, а таблица итогов среза последних, на которой очевидно и возникает дедлок.
   pechkin
 
51 - 20.11.21 - 19:54
Wms пилите? Что за конфа?
   mistеr
 
52 - 22.11.21 - 09:39
(47) sys.indexes, sys.tables
   TormozIT
 
53 - 23.11.21 - 18:28
Теперь на другом более простом регистре возник тоже страничный дедлок на таблице итогов среза последних.
Для устранения проблемы - в начале транзакции добавил логически бесполезное чтение по первому измерению кластерного и единственного индекса этой таблицы
    Запрос = Новый Запрос;
    Запрос.Текст = "
    |ВЫБРАТЬ
    |    Т.Документ КАК Документ
    |ИЗ
    |    РегистрСведений.Т.СрезПоследних(, Документ В (&Ссылки)) КАК Т
    |";
    Запрос.Выполнить();
Пока вроде больше не появлялся.
   Добрыня Никитич
 
54 - 23.11.21 - 19:01
(53) А очему ты думаешь, что чтение устранит проблему? У тебя же дедлок на U и IX блокировках при записи в таблицу итогов, а судя по режиму совместимости при чтении не будет s-блокировки, то есть этот запрос ничего не меняет.
   assasu
 
55 - 24.11.21 - 08:25
(0) у дедлоков 2 причины. для начала надо разобраться какая в нашем случае
и , ну я просто уточняю, точно не перепутаны дедлоки с ожиданиями ?
   TormozIT
 
56 - 24.11.21 - 08:32
(54) Потому что новый дедлок на блокировках IU-U
<deadlock>
 <victim-list>
  <victimProcess id="process21872047848" />
 </victim-list>
 <process-list>
  <process id="process21872047848" taskpriority="0" logused="220984" waitresource="PAGE: 26:1:107081 " waittime="1075" ownerId="142657830" transactionname="user_transaction" lasttranstarted="2021-11-23T16:36:06.720" XDES="0x2170e530bd8" lockMode="U" schedulerid="6" kpid="10548" status="suspended" spid="66" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2021-11-23T16:36:08.260" lastbatchcompleted="2021-11-23T16:36:08.260" lastattention="1900-01-01T00:00:00.260" clientapp="1CV83 Server" hostname="SRV-AX-PCTEST01" hostpid="3916" loginname="sa" isolationlevel="read committed (2)" xactid="142657830" currentdb="26" lockTimeout="20000" clientoption1="671219744" clientoption2="128056">
   <executionStack>
    <frame procname="adhoc" line="1" stmtstart="130" stmtend="3552" sqlhandle="0x02000000f54b5c242ff60f136d08d4d1e0ce391eaa134aa60000000000000000000000000000000000000000">
unknown    </frame>
    <frame procname="unknown" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown    </frame>
   </executionStack>
   <inputbuf>
(P1 numeric(10),@P2 numeric(10),@P3 numeric(10),@P4 numeric(10))UPDATE T8 SET _Period = T1.Period_, _RecorderTRef = T1.RecorderTRef, _RecorderRRef = T1.RecorderRRef, _Fld5634RRef = T1.Fld5634RRef, _Fld5635 = T1.Fld5635_
FROM (SELECT
T7._Period AS Period_,
T7._RecorderTRef AS RecorderTRef,
T7._RecorderRRef AS RecorderRRef,
T7._Fld5633RRef AS Fld5633RRef,
T7._Fld5634RRef AS Fld5634RRef,
T7._Fld5635 AS Fld5635_,
T7._Fld563 AS Fld563_
FROM (SELECT
T3.Fld5633RRef AS Fld5633RRef,
T3.MINMAX_PERIOD_ AS MINMAX_PERIOD_,
SUBSTRING(MAX(T6._RecorderTRef + T6._RecorderRRef),1,4) AS MINMAX_RECORDERTRef,
SUBSTRING(MAX(T6._RecorderTRef + T6._RecorderRRef),5,16) AS MINMAX_RECORDERRRef,
T3.Fld563_ AS Fld563_
FROM (SELECT
T4._Fld5633RRef AS Fld5633RRef,
MAX(T4._Period) AS MINMAX_PERIOD_,
T4._Fld563 AS Fld563_
FROM dbo._InfoRg5632 T4
INNER JOIN #tt103 T5 WITH(NOLOCK)
ON T4._Fld5633RRef = T5._Fld5633RRef AND T4._Fld563 = T5._Fld563
WHERE ((T4._Fld563 = P1)) AND (T4._Active = 0x01)
GROUP BY T4._Fld5633RRef,
T4._Fld563) T3
INNER    </inputbuf>
  </process>
  <process id="process2187202fc28" taskpriority="0" logused="276288" waitresource="PAGE: 26:1:105241 " waittime="1104" ownerId="142655257" transactionname="user_transaction" lasttranstarted="2021-11-23T16:36:06.350" XDES="0x21720252408" lockMode="IU" schedulerid="3" kpid="7416" status="suspended" spid="60" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2021-11-23T16:36:08.293" lastbatchcompleted="2021-11-23T16:36:08.290" lastattention="1900-01-01T00:00:00.290" clientapp="1CV83 Server" hostname="SRV-AX-PCTEST01" hostpid="3916" loginname="sa" isolationlevel="read committed (2)" xactid="142655257" currentdb="26" lockTimeout="20000" clientoption1="671219744" clientoption2="128056">
   <executionStack>
    <frame procname="adhoc" line="1" stmtstart="130" stmtend="3552" sqlhandle="0x02000000fd76ad1643ce050176b4bcfab0ee95280c4728ff0000000000000000000000000000000000000000">
unknown    </frame>
    <frame procname="unknown" line="1" sqlhandle="0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000">
unknown    </frame>
   </executionStack>
   <inputbuf>
(P1 numeric(10),@P2 numeric(10),@P3 numeric(10),@P4 numeric(10))UPDATE T8 SET _Period = T1.Period_, _RecorderTRef = T1.RecorderTRef, _RecorderRRef = T1.RecorderRRef, _Fld5634RRef = T1.Fld5634RRef, _Fld5635 = T1.Fld5635_
FROM (SELECT
T7._Period AS Period_,
T7._RecorderTRef AS RecorderTRef,
T7._RecorderRRef AS RecorderRRef,
T7._Fld5633RRef AS Fld5633RRef,
T7._Fld5634RRef AS Fld5634RRef,
T7._Fld5635 AS Fld5635_,
T7._Fld563 AS Fld563_
FROM (SELECT
T3.Fld5633RRef AS Fld5633RRef,
T3.MINMAX_PERIOD_ AS MINMAX_PERIOD_,
SUBSTRING(MAX(T6._RecorderTRef + T6._RecorderRRef),1,4) AS MINMAX_RECORDERTRef,
SUBSTRING(MAX(T6._RecorderTRef + T6._RecorderRRef),5,16) AS MINMAX_RECORDERRRef,
T3.Fld563_ AS Fld563_
FROM (SELECT
T4._Fld5633RRef AS Fld5633RRef,
MAX(T4._Period) AS MINMAX_PERIOD_,
T4._Fld563 AS Fld563_
FROM dbo._InfoRg5632 T4
INNER JOIN #tt102 T5 WITH(NOLOCK)
ON T4._Fld5633RRef = T5._Fld5633RRef AND T4._Fld563 = T5._Fld563
WHERE ((T4._Fld563 = P1)) AND (T4._Active = 0x01)
GROUP BY T4._Fld5633RRef,
T4._Fld563) T3
INNER    </inputbuf>
  </process>
 </process-list>
 <resource-list>
  <pagelock fileid="1" pageid="107081" dbid="26" subresource="FULL" objectname="StarykhTest2.dbo._InfoRgSL5637" id="lock217a03b3a00" mode="IU" associatedObjectId="72057594107854848">
   <owner-list>
    <owner id="process2187202fc28" mode="IU" />
   </owner-list>
   <waiter-list>
    <waiter id="process21872047848" mode="U" requestType="wait" />
   </waiter-list>
  </pagelock>
  <pagelock fileid="1" pageid="105241" dbid="26" subresource="FULL" objectname="StarykhTest2.dbo._InfoRgSL5637" id="lock2178bbbce80" mode="U" associatedObjectId="72057594107854848">
   <owner-list>
    <owner id="process21872047848" mode="U" />
   </owner-list>
   <waiter-list>
    <waiter id="process2187202fc28" mode="IU" requestType="wait" />
   </waiter-list>
  </pagelock>
 </resource-list>
</deadlock>
   mistеr
 
57 - 24.11.21 - 09:03
(55) Причина в эскалации блокировок и неоптимальной структуре кластерного индекса. Радикальное решение в (32).
   assasu
 
58 - 24.11.21 - 09:15
(57) нет таких причин дедлоков. Или дедлоки - это вовсе не дедлоки -:)
   mistеr
 
59 - 24.11.21 - 09:37
(58) Ну озвучь свою версию. Все данные предоставлены.
   Добрыня Никитич
 
60 - 24.11.21 - 10:41
(56) >>Потому что новый дедлок на блокировках IU-U

За счет чего, на твой взгляд, запросом на чтение в начале транзакции, ты убераешь дедлок? Он же не ставит никаких блокировок
 
 
   pechkin
 
61 - 24.11.21 - 10:44
на время выполнения запроса ставит
   Добрыня Никитич
 
62 - 24.11.21 - 10:44
(61) Нет. На 8.3 включен режим версионности, и при чтении никаких блокировок нет.
   Конструктор1С
 
63 - 24.11.21 - 10:59
(0) какие измерения в регистре и по какому признаку параллелится запись?
   TormozIT
 
64 - 24.11.21 - 17:48
После (53) пока дедлоков новых не было. Но пока создано было мало документов. Продолжаю наблюдение.
   Добрыня Никитич
 
65 - 24.11.21 - 18:02
(64) держи нас в курсе, переживаем за тебя!
   TormozIT
 
66 - 03.12.21 - 18:49
Больше оба дедлока не появлялись. Напоминаю, что 
- первый дедлок (на таблице упРаботыПоРейсу) я устранил жестко - отключил таблицу итогов среза последних после того, как взвесил оправданность ее использования.
- второй дедлок (на таблице упЗаданияКПланированию) устранен чтением в начале транзакции по тому отбору, с которым затем будут добавляться строки в регистр сведений с включенной таблицей итогов среза последних


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.