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


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

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

Менеджер против Набора записей для регистров сведений
Я
   Мандалай
 
09.11.17 - 13:54
Добрый день.
Чем плох менеджер в плане производительности при записи одной или нескольких строк?
 
 
   MrStomak
 
1 - 09.11.17 - 13:55
(0) При записи нескольких строк плох тем, что не может записать несколько строк.
   Лефмихалыч
 
2 - 09.11.17 - 13:57
технически, при записи набора, сервер приложений записывает каждую строку по отдельности - да - так, же, как он делает при записи менеджером записи. Но при записи набора он это делает в одной транзакции. При записи туевой хучи менеджеров будет туева хуча транзакций.
   mistеr
 
3 - 09.11.17 - 13:57
Если не ошибаюсь, внутри там все равно набор записей из одной записи. Так что производительность одинаковая.
   Лефмихалыч
 
4 - 09.11.17 - 13:57
(3) да щас!
   Лефмихалыч
 
5 - 09.11.17 - 13:58
Вообще, менеджер хорош тем, что, если руки из жопы, то с его помощью ты весь регистр не угондонишь.
   mistеr
 
6 - 09.11.17 - 14:00
(2) >записывает каждую строку по отдельности
Трассировка это подтверждает? Я не проверял, но уверен, что там один INSERT/UPDATE и массив параметров.

Насчет транзакций, никто не мешает записывать менеджером записи в одной транзакции.
   Ненавижу 1С
 
7 - 09.11.17 - 14:00
(2) зато в начале набор одним запросом сначала очищает записи

а в транзакцию можно и насильно обернуть
   DrShad
 
8 - 09.11.17 - 14:01
(5) в цикле легко )))
   Ненавижу 1С
 
9 - 09.11.17 - 14:01
(6) "Я не проверял, но уверен" - ага
   Мыш
 
10 - 09.11.17 - 14:04
(9) Никогда такого не было, и вот - опять )))
 
 Рекламное место пустует
   Fragster
 
11 - 09.11.17 - 14:06
   mistеr
 
12 - 09.11.17 - 14:10
(9) Да, я поторопился с выводами. Если подумать, то в наборе записей всегда есть отбор, поэтому не массив параметров, а WHERE. Но уверенность в том, что не "каждую строку по отдельности", остается. Какой смысл ставить очевидный барьер производительности?
   Ненавижу 1С
 
13 - 09.11.17 - 14:13
(12) а как будет выглядеть этот запрос, например, при записи набора из 1000 строк?
   Волшебник
 
Модератор
14 - 09.11.17 - 14:14
(4) Он правду говорит.
   Филиал-msk
 
15 - 09.11.17 - 14:16
(12) Смысл в Error: 10739, Severity 15, The number of row value expressions in the INSERT statement exceeds the maximum allowed number of 1000 row values.
   Лефмихалыч
 
16 - 09.11.17 - 14:18
(14) что производительность одинаковая - враньё!
   Лефмихалыч
 
17 - 09.11.17 - 14:19
(12) РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей().Записать()

какой здесь отбор всегда есть?
   Филиал-msk
 
18 - 09.11.17 - 14:21
(17) Естественный (:
   H A D G E H O G s
 
19 - 09.11.17 - 14:24
(17) Здесь отбор на тех, кто свой код тестит на копии и смотрит в результат или не тестит и потом ищет бэкапы.
   mistеr
 
20 - 09.11.17 - 14:24
(15) Для INSERT скорее всего массив параметров. Для UPDATE, DELETE отбор.

(17) Если отбор не установлен, значит будет DELETE без отбора, то есть на весь регистр.

Я имел в виду, что набор обрабатываемых строк всегда можно идентифицировать отбором.
   Ненавижу 1С
 
21 - 09.11.17 - 14:26
(20) "Для INSERT скорее всего массив параметров. Для UPDATE, DELETE отбор."

ты несешь какую-то дичь
   mistеr
 
22 - 09.11.17 - 14:31
(21) Возможно. Просвети, как на самом деле.
   HEKPOH
 
23 - 09.11.17 - 14:32
При сохранении информации при использовании в программном коде объекта МенеджерЗаписи Платформа сама создает объект НаборЗаписей, а его уже записывает
   Ненавижу 1С
 
24 - 09.11.17 - 14:34
(22) я уже писал:
1. один DELETE стирает все старые записи согласно отбора
2. куча INSERT где по одной записи вставляются новые
   mistеr
 
25 - 09.11.17 - 14:38
(24) А UPDATE как?
   mistеr
 
26 - 09.11.17 - 14:38
UPDATE не делается?
   Ненавижу 1С
 
27 - 09.11.17 - 14:39
(25)(26) нет там никаких UPDATE
   Филиал-msk
 
28 - 09.11.17 - 14:41
(24) Если "записать(ложь)", то delete нет, сразу поток insert
   Ненавижу 1С
 
29 - 09.11.17 - 14:42
(28) согласен
   H A D G E H O G s
 
30 - 09.11.17 - 14:43
Набор круче Менеджера только тем, что Delete делается 1 раз. Вот и все. Толпу менеджеров можно обернуть в
НачатьТранзакцию()
и ваш SDD будет жить спокойной жизнью.
   Мандалай
 
31 - 09.11.17 - 15:13
Чет затихло, я думал тыщу постов наберет :)
   Мандалай
 
32 - 09.11.17 - 15:14
Всем спасибо, за ответы.
Я так понял, что мы пришли к единому мнению...
   Fragster
 
33 - 09.11.17 - 17:05
(30) если есть подписки при записи/перед записью, то они в случае наобра также один раз отработают
 
 
   Cyberhawk
 
34 - 09.11.17 - 17:50
(32) Огласи это единое мнение
   Сияющий в темноте
 
35 - 09.11.17 - 22:52
менеджер работает по одной записи,иногда это очень удобно и блокировка идет только в момент записи,то есть можно избежать столкновения транзакций
не всегда хорошо,если одна большая транзакция


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