|
Блокировки. |
☑ |
0
МойКодУныл
27.11.13
✎
15:29
|
Достаточно часто вылетают блокировки в базе.
Полез разбираться - нашел причину в SQL:
SELECT
CAST(COUNT(T1._RecorderTRef) AS NUMERIC(10))
FROM _AccumRg13485 T1 WITH(SERIALIZABLE, UPDLOCK)
Это получение количества записей в регистре накопления при очистки движений.
Порождает это запрос конструкция
>>Если Движение.Количество() > 0 Тогда
Т.е. платформа. Давно вопрос - поставил регистру режим упр блокировок и сделал блокировку только по регистратору. Не помогло. Запрос в SQL не поменялся, все равно блокируется вся таблица.
Как бороться и почему 1С меня не понимает?) Почему опять пишет WITH(SERIALIZABLE, UPDLOCK), хотя установлена управляемая блокировка?
|
|
1
Fragster
модератор
27.11.13
✎
15:30
|
поставь режим управляемый
|
|
2
Fragster
модератор
27.11.13
✎
15:32
|
замени на запрос
|
|
3
Maxus43
27.11.13
✎
15:35
|
сама конфа поди на автоматических, или документ на автоматических, который двигает
|
|
4
Necessitudo
27.11.13
✎
15:36
|
(3) Та конфигурация бы ругалась при попытке такое поставить.
|
|
5
Maxus43
27.11.13
✎
15:37
|
(3) если конфа на автоматических то нет, указание управляемых просто бы игнорировалось
|
|
6
Maxus43
27.11.13
✎
15:37
|
(5)>(4)
|
|
7
х86
27.11.13
✎
15:39
|
(0)ты уверен что запрос вызывается именно при >>Если Движение.Количество() > 0 Тогда ???
|
|
8
МойКодУныл
27.11.13
✎
16:09
|
(7) Да, на 91%).
(2) Тоже так думаю. Может при таком обращении игнорится указание на упр блокировку.
(5) Да сама конфа на управляемых, и есть места, где они работают:).
|
|
9
МойКодУныл
27.11.13
✎
16:10
|
Спасибо, буду пробовать.
У меня еше есть подозрение, что код этой процедуры, взятый из тповой дико устарел. Года на полтора так. Поищу в новых.
|
|
10
МойКодУныл
27.11.13
✎
17:56
|
Для истории.
(5) Был прав. Конфа оказалась на совместимсти (Автомат и Управляемые). Хотя я был уверен, что вся на управляемых(все переведено). У документа не стоял вид блокировок Управляемый.
|
|
11
salih020292
27.11.13
✎
18:01
|
Если автоматические блокировки то всеми блокировками занимается СУБД, на управляемых - менеджер блокировок сервера и кодер должен.
Если поставить управляемый режим в свойствах конфы и оставить все как было можно получить резкий выйгрыш в проиизводительности, но если ничего не делать то все загнется на х.
|
|
12
salih020292
27.11.13
✎
18:02
|
(0) переводи конфу в автомат и управ, и начинай переводить на управу.
автомат режим слобоват.
Хотя для начала запросы гавнястые оптимизируй.
|
|
13
salih020292
27.11.13
✎
18:04
|
(0) в автомат режиме на sql вид блокировки - записей., как помню уровень изоляции воспроизводимое чтение и сериализибл ( файловый режим по сути )
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший