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