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


1С:Предприятие :: 1С:Предприятие 8 общая

Взаимоблокировки запросом (чтение)

Взаимоблокировки запросом (чтение)
Я
   yavasya
 
05.12.17 - 10:22
При ошибке deadlocked on lock администратор базы данных выслал такую информацию.

Есть скрин от пользователя со строкой ошибки. 
В этой строке Запрос.Выполнить().
В запросе регистр который никто не записывает в данный период. В запросе нет строки с блокировкой. Запрос выполняется внутри двух транзакций :

1. Получаем документ "Бюджет подразделения" и Блокируем этот документ.
2.Создаем много документов "Бюджетная операция" и записываем в тч документа 

Как можно решить данную проблему ?  

Блокирующие друг друга запросы:
1.
(@P1 varbinary(16),@P2 varbinary(16),@P3 varbinary(16),@P4 varbinary(16))INSERT INTO #tt102 WITH(TABLOCK) (_Q_000_F_000_TYPE, _Q_000_F_000_RTRef, _Q_000_F_000_RRRef) SELECT  0x08,  0x0000013E,  T1._IDRRef  FROM dbo._Document318 T1  WHERE (T1._Fld6003RRef IN (@P1))  UNION ALL SELECT  T2._Fld22053_TYPE,  T2._Fld22053_RTRef,  T2._Fld22053_RRRef  FROM dbo._InfoRg22052 T2  WHERE (T2._Fld22058RRef IN (@P2))  UNION ALL SELECT  T3._Fld22053_TYPE,  T3._Fld22053_RTRef,  T3._Fld22053_RRRef  FROM dbo._InfoRg22052 T3  WHERE (T3._Fld22059RRef IN (@P3))  UNION ALL SELECT  0x08,  0x0000013E,  T4._Document318_IDRRef  FROM dbo._Document318_VT6010 T4  WHERE T4._Fld29331RRef IN  (SELECT  T5.Fld30284RRef AS Q_004_F_000RRef  FROM (SELECT  T8._Fld30284RRef AS Fld30284RRef,  T8._Fld30286 AS Fld30286_  FROM (SELECT  T7._Fld30284RRef AS Fld30284RRef,  T7._Fld30285RRef AS Fld30285RRef,  MAX(T7._Period) AS MAXPERIOD_  FROM dbo._InfoRg30283 T7  WHERE ((T7._Fld30285RRef IN (@P4)))  GROUP BY T7._Fld30284RRef,  T7._Fld30285RRef) T6  INNER JOIN dbo._InfoRg30283 T8  ON T6.Fld302  
2.
(@P1 varbinary(16),@P2 varbinary(16),@P3 varbinary(16),@P4 varbinary(16))INSERT INTO #tt13 WITH(TABLOCK) (_Q_000_F_000_TYPE, _Q_000_F_000_RTRef, _Q_000_F_000_RRRef) SELECT  0x08,  0x0000013E,  T1._IDRRef  FROM dbo._Document318 T1  WHERE (T1._Fld6003RRef IN (@P1))  UNION ALL SELECT  T2._Fld22053_TYPE,  T2._Fld22053_RTRef,  T2._Fld22053_RRRef  FROM dbo._InfoRg22052 T2  WHERE (T2._Fld22058RRef IN (@P2))  UNION ALL SELECT  T3._Fld22053_TYPE,  T3._Fld22053_RTRef,  T3._Fld22053_RRRef  FROM dbo._InfoRg22052 T3  WHERE (T3._Fld22059RRef IN (@P3))  UNION ALL SELECT  0x08,  0x0000013E,  T4._Document318_IDRRef  FROM dbo._Document318_VT6010 T4  WHERE T4._Fld29331RRef IN  (SELECT  T5.Fld30284RRef AS Q_004_F_000RRef  FROM (SELECT  T8._Fld30284RRef AS Fld30284RRef,  T8._Fld30286 AS Fld30286_  FROM (SELECT  T7._Fld30284RRef AS Fld30284RRef,  T7._Fld30285RRef AS Fld30285RRef,  MAX(T7._Period) AS MAXPERIOD_  FROM dbo._InfoRg30283 T7  WHERE ((T7._Fld30285RRef IN (@P4)))  GROUP BY T7._Fld30284RRef,  T7._Fld30285RRef) T6  INNER JOIN dbo._InfoRg30283 T8  ON T6.Fld3028
 
 
   yavasya
 
1 - 05.12.17 - 10:23
При ошибке deadlocked on lock администратор базы данных выслал такую информацию.

Блокирующие друг друга запросы:
1.
(@P1 varbinary(16),@P2 varbinary(16),@P3 varbinary(16),@P4 varbinary(16))INSERT INTO #tt102 WITH(TABLOCK) (_Q_000_F_000_TYPE, _Q_000_F_000_RTRef, _Q_000_F_000_RRRef) SELECT  0x08,  0x0000013E,  T1._IDRRef  FROM dbo._Document318 T1  WHERE (T1._Fld6003RRef IN (@P1))  UNION ALL SELECT  T2._Fld22053_TYPE,  T2._Fld22053_RTRef,  T2._Fld22053_RRRef  FROM dbo._InfoRg22052 T2  WHERE (T2._Fld22058RRef IN (@P2))  UNION ALL SELECT  T3._Fld22053_TYPE,  T3._Fld22053_RTRef,  T3._Fld22053_RRRef  FROM dbo._InfoRg22052 T3  WHERE (T3._Fld22059RRef IN (@P3))  UNION ALL SELECT  0x08,  0x0000013E,  T4._Document318_IDRRef  FROM dbo._Document318_VT6010 T4  WHERE T4._Fld29331RRef IN  (SELECT  T5.Fld30284RRef AS Q_004_F_000RRef  FROM (SELECT  T8._Fld30284RRef AS Fld30284RRef,  T8._Fld30286 AS Fld30286_  FROM (SELECT  T7._Fld30284RRef AS Fld30284RRef,  T7._Fld30285RRef AS Fld30285RRef,  MAX(T7._Period) AS MAXPERIOD_  FROM dbo._InfoRg30283 T7  WHERE ((T7._Fld30285RRef IN (@P4)))  GROUP BY T7._Fld30284RRef,  T7._Fld30285RRef) T6  INNER JOIN dbo._InfoRg30283 T8  ON T6.Fld302  
2.
(@P1 varbinary(16),@P2 varbinary(16),@P3 varbinary(16),@P4 varbinary(16))INSERT INTO #tt13 WITH(TABLOCK) (_Q_000_F_000_TYPE, _Q_000_F_000_RTRef, _Q_000_F_000_RRRef) SELECT  0x08,  0x0000013E,  T1._IDRRef  FROM dbo._Document318 T1  WHERE (T1._Fld6003RRef IN (@P1))  UNION ALL SELECT  T2._Fld22053_TYPE,  T2._Fld22053_RTRef,  T2._Fld22053_RRRef  FROM dbo._InfoRg22052 T2  WHERE (T2._Fld22058RRef IN (@P2))  UNION ALL SELECT  T3._Fld22053_TYPE,  T3._Fld22053_RTRef,  T3._Fld22053_RRRef  FROM dbo._InfoRg22052 T3  WHERE (T3._Fld22059RRef IN (@P3))  UNION ALL SELECT  0x08,  0x0000013E,  T4._Document318_IDRRef  FROM dbo._Document318_VT6010 T4  WHERE T4._Fld29331RRef IN  (SELECT  T5.Fld30284RRef AS Q_004_F_000RRef  FROM (SELECT  T8._Fld30284RRef AS Fld30284RRef,  T8._Fld30286 AS Fld30286_  FROM (SELECT  T7._Fld30284RRef AS Fld30284RRef,  T7._Fld30285RRef AS Fld30285RRef,  MAX(T7._Period) AS MAXPERIOD_  FROM dbo._InfoRg30283 T7  WHERE ((T7._Fld30285RRef IN (@P4)))  GROUP BY T7._Fld30284RRef,  T7._Fld30285RRef) T6  INNER JOIN dbo._InfoRg30283 T8  ON T6.Fld3028
   ИТ директор
 
2 - 05.12.17 - 10:33
   ИТ директор
 
3 - 05.12.17 - 10:37
Режим управления блокировками какой в конфе?
   yavasya
 
4 - 05.12.17 - 10:44
(3)  УПП 1.3
   vicof
 
5 - 05.12.17 - 10:46
(4)
-Где ты был вчера?
-Мандарины
   yavasya
 
6 - 05.12.17 - 10:51
(3) УПП 1.3 типовая, автоматический, в совместимости с управляемыми блокировками

(5) вроде опытный товарищ, не знаешь какой режим блокировки в старых конфах на толстых формах
   ИТ директор
 
7 - 05.12.17 - 10:56
(6) Вообще-то в УПП 1.3 уже очень давно в свойствах конфы только управляемый режим.
   ИТ директор
 
8 - 05.12.17 - 11:01
+(7) Раз автоматический, тогда статья из (2) актуальна.
Внутри транзакции "1. Получаем документ "Бюджет подразделения" и Блокируем этот документ."

сделай чтение этого документа запросом с опцией ДЛЯ ИЗМЕНЕНИЯ
   vicof
 
9 - 05.12.17 - 11:03
(6) И перевидал этих типовых и нетиповых миллион. И в каждой по-разному.
   ИТ директор
 
10 - 05.12.17 - 11:04
+(8) Перед чтением документа-объекта
 
 Рекламное место пустует
   DexterMorgan
 
11 - 05.12.17 - 11:06
(6) А ты опытный товарищ? Ну объясни, пожалуйста, что такое "толстые формы"?
   yavasya
 
12 - 05.12.17 - 11:12
(11) Не очень опытный ) Толстые формы - это формы для обычного приложения , толстые , мощные )))
   yavasya
 
13 - 05.12.17 - 11:14
(8) Благодарю
   ИТ директор
 
14 - 05.12.17 - 11:17
Только я нифига не понял зачем тут 2 транзакции.
   yavasya
 
15 - 05.12.17 - 11:21
(14) имею ввиду что 1 транзакция начинается перед получением объекта , вторая при создания документов к нему.
Логически неделимая цепочка.
Я не проектировал, только исправляю баг
   ИТ директор
 
16 - 05.12.17 - 11:23
(15) Типа вложенная транзакция штоли?
   yavasya
 
17 - 05.12.17 - 11:25
(16) Второй транзакцией я считаю обработку проведения документов при создании на основании для добавления в табличную часть документ - основание
   ИТ директор
 
18 - 05.12.17 - 11:29
Я хз че у тебя там делается и как на самом деле, попробуй сделать (8)
   yavasya
 
19 - 05.12.17 - 11:36
(18) не знаю с чем это связано, но с подключением пользователя по РДП к серверу все работает. Чистка кэш на локальном компьютере не помогла.
   DexterMorgan
 
20 - 05.12.17 - 11:56
(12) Не бывает толстых форм, есть режим запуска - толстый клиент, в котором и управляемые формы прекрасно работают
   yavasya
 
21 - 05.12.17 - 12:28
(20) я имел ввиду режим запуска толстый клиент обычное приложение
   Alligator219
 
22 - 05.12.17 - 16:53
(6) А ви таки знаете что когда ви включаете режим управления блокировками "Автоматический и управляемый", то работает и менеджер блокировок СУБД, и менеджер блокировок 1С?
   H A D G E H O G s
 
23 - 05.12.17 - 17:01
(0) Я бы сделал ставку на индексный скан регистра сведений, по которому делается срез последних
   yavasya
 
24 - 06.12.17 - 08:20
(23) и средствами SQL проиндексировать ?
   yavasya
 
25 - 06.12.17 - 08:21
(22) не знал, изучаю администрирование 1С, благодарю за информацию
   yavasya
 
26 - 06.12.17 - 08:22
(22) а если управляемые, то как работают блокировки ?
   yavasya
 
27 - 06.12.17 - 08:32
Доброе утро ! Коллеги блокировка стала на запись нового документа, если по данному типу документов в конфигурации не используются управляемые блокировки, могут ли помешать другие пользователи которые создают также этот тип документа?
   MrStomak
 
28 - 06.12.17 - 08:37
(27) да даже по тексту из (0) видно, что дедлок на регистре сведений.
   yavasya
 
29 - 06.12.17 - 08:40
(28) сейчас другая ошибка
   MrStomak
 
30 - 06.12.17 - 08:43
(29) Скрывай как можно больше инфы, никогда не пиши иексты ошибок!
   MrStomak
 
31 - 06.12.17 - 08:45
В (8) уже дали ответ давно.
   yavasya
 
32 - 06.12.17 - 08:52
(31) Доступ к статье запрещен
   MrStomak
 
33 - 06.12.17 - 09:01
(32)
В тексте дали ответ.
Делай запрос Выбрать * из регистрсведений.блабла для изменения.
Выполняй запрос перед этим твоим дедлочным. Будет работать медленно, но надежно.
 
 
   yavasya
 
34 - 06.12.17 - 09:03
(33) это ошибка возникает при записи нового документа. Почему возникает deadlock on lock  не понятно.
   MrStomak
 
35 - 06.12.17 - 09:06
(34) ты чего сейчас от людей хочешь? Чтобы тебе придумали и угадали схему твоего дедлока? Один из вариантов - повышение уровня блокировки в транзакции, ДЛЯ ИЗМЕНЕНИЯ это уберет.
   yavasya
 
36 - 06.12.17 - 09:17
(35) v8: Deadlock - Повышение уровня блокировки (Управляемый режим)
читаю твои ответы.

Какие курсы можно пройти/прочитать чтобы узнать про блокировки, производительность? Нужна практика при этом иначе забывается быстро
   MrStomak
 
37 - 06.12.17 - 09:53
(36)
Я думаю, у Гилёва (Евгения) всё для тебя найдётся в заначке, любой курс.
   ИТ директор
 
38 - 06.12.17 - 10:02
(36) От УЦ 1 щас вроде В.Богачев по выходным ведет очные вебинары, причем прайс у этого мероприятия в районе 15 рублей.

Но последнее время ребята из принимающих 1С:Эксперт очевидно испытывают кризис жанра и принимают тяжелые психотропные вещества, говорят на тренинге все дни учатся писать регулырные выражения для анализа ТЖ - ноу комментс как говорится.

Но я бы посоветовал не ввязываться в этот марафон, а тупо-глупо разобрать по этой теме статьи на kb.1c.ru
И быстрее и денег сэкономишь. Там понимать-то нефиг по сути.
   тарам пам пам
 
39 - 06.12.17 - 11:38
(38) Так и есть - был в сентябре на эксперте, почти все 3 дня тренинга - по сути изучение регэкспов и grep sed awk. Полезного было кот наплакал.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует