Менеджер против Набора записей для регистров сведений #808125


#0 by Мандалай
Добрый день. Чем плох менеджер в плане производительности при записи одной или нескольких строк?
#1 by MrStomak
При записи нескольких строк плох тем, что не может записать несколько строк.
#2 by Лефмихалыч
технически, при записи набора, сервер приложений записывает каждую строку по отдельности - да - так, же, как он делает при записи менеджером записи. Но при записи набора он это делает в одной транзакции. При записи туевой хучи менеджеров будет туева хуча транзакций.
#3 by mistеr
Если не ошибаюсь, внутри там все равно набор записей из одной записи. Так что производительность одинаковая.
#4 by Лефмихалыч
да щас!
#5 by Лефмихалыч
Вообще, менеджер хорош тем, что, если руки из жопы, то с его помощью ты весь регистр не угондонишь.
#6 by mistеr
>записывает каждую строку по отдельности Трассировка это подтверждает? Я не проверял, но уверен, что там один INSERT/UPDATE и массив параметров. Насчет транзакций, никто не мешает записывать менеджером записи в одной транзакции.
#7 by Ненавижу 1С
зато в начале набор одним запросом сначала очищает записи а в транзакцию можно и насильно обернуть
#8 by DrShad
в цикле легко )))
#9 by Ненавижу 1С
"Я не проверял, но уверен" - ага
#10 by Мыш
Никогда такого не было, и вот - опять )))
#11 by Fragster
#12 by mistеr
Да, я поторопился с выводами. Если подумать, то в наборе записей всегда есть отбор, поэтому не массив параметров, а WHERE. Но уверенность в том, что не "каждую строку по отдельности", остается. Какой смысл ставить очевидный барьер производительности?
#13 by Ненавижу 1С
а как будет выглядеть этот запрос, например, при записи набора из 1000 строк?
#14 by Волшебник
Он правду говорит.
#15 by Филиал-msk
Смысл в Error: 10739, Severity 15, The number of row value expressions in the INSERT statement exceeds the maximum allowed number of 1000 row values.
#16 by Лефмихалыч
что производительность одинаковая - враньё!
#17 by Лефмихалыч
РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей.Записать какой здесь отбор всегда есть?
#18 by Филиал-msk
Естественный (:
#19 by H A D G E H O G s
Здесь отбор на тех, кто свой код тестит на копии и смотрит в результат или не тестит и потом ищет бэкапы.
#20 by mistеr
Для INSERT скорее всего массив параметров. Для UPDATE, DELETE отбор. Если отбор не установлен, значит будет DELETE без отбора, то есть на весь регистр. Я имел в виду, что набор обрабатываемых строк всегда можно идентифицировать отбором.
#21 by Ненавижу 1С
"Для INSERT скорее всего массив параметров. Для UPDATE, DELETE отбор." ты несешь какую-то дичь
#22 by mistеr
Возможно. Просвети, как на самом деле.
#23 by HEKPOH
При сохранении информации при использовании в программном коде объекта МенеджерЗаписи Платформа сама создает объект НаборЗаписей, а его уже записывает
#24 by Ненавижу 1С
я уже писал: 1. один DELETE стирает все старые записи согласно отбора 2. куча INSERT где по одной записи вставляются новые
#25 by mistеr
А UPDATE как?
#26 by mistеr
UPDATE не делается?
#27 by Ненавижу 1С
нет там никаких UPDATE
#28 by Филиал-msk
Если "записать(ложь)", то delete нет, сразу поток insert
#29 by Ненавижу 1С
согласен
#30 by H A D G E H O G s
Набор круче Менеджера только тем, что Delete делается 1 раз. Вот и все. Толпу менеджеров можно обернуть в НачатьТранзакцию и ваш SDD будет жить спокойной жизнью.
#31 by Мандалай
Чет затихло, я думал тыщу постов наберет :)
#32 by Мандалай
Всем спасибо, за ответы. Я так понял, что мы пришли к единому мнению...
#33 by Fragster
если есть подписки при записи/перед записью, то они в случае наобра также один раз отработают
#34 by Cyberhawk
Огласи это единое мнение
#35 by Сияющий в темноте
менеджер работает по одной записи,иногда это очень удобно и блокировка идет только в момент записи,то есть можно избежать столкновения транзакций не всегда хорошо,если одна большая транзакция
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С