|
Менеджер против Набора записей для регистров сведений | ☑ | ||
---|---|---|---|---|
0
Мандалай
09.11.17
✎
13:54
|
Добрый день.
Чем плох менеджер в плане производительности при записи одной или нескольких строк? |
|||
1
MrStomak
09.11.17
✎
13:55
|
(0) При записи нескольких строк плох тем, что не может записать несколько строк.
|
|||
2
Лефмихалыч
09.11.17
✎
13:57
|
технически, при записи набора, сервер приложений записывает каждую строку по отдельности - да - так, же, как он делает при записи менеджером записи. Но при записи набора он это делает в одной транзакции. При записи туевой хучи менеджеров будет туева хуча транзакций.
|
|||
3
mistеr
09.11.17
✎
13:57
|
Если не ошибаюсь, внутри там все равно набор записей из одной записи. Так что производительность одинаковая.
|
|||
4
Лефмихалыч
09.11.17
✎
13:57
|
(3) да щас!
|
|||
5
Лефмихалыч
09.11.17
✎
13:58
|
Вообще, менеджер хорош тем, что, если руки из жопы, то с его помощью ты весь регистр не угондонишь.
|
|||
6
mistеr
09.11.17
✎
14:00
|
(2) >записывает каждую строку по отдельности
Трассировка это подтверждает? Я не проверял, но уверен, что там один INSERT/UPDATE и массив параметров. Насчет транзакций, никто не мешает записывать менеджером записи в одной транзакции. |
|||
7
Ненавижу 1С
гуру
09.11.17
✎
14:00
|
(2) зато в начале набор одним запросом сначала очищает записи
а в транзакцию можно и насильно обернуть |
|||
8
DrShad
09.11.17
✎
14:01
|
(5) в цикле легко )))
|
|||
9
Ненавижу 1С
гуру
09.11.17
✎
14:01
|
(6) "Я не проверял, но уверен" - ага
|
|||
10
Мыш
09.11.17
✎
14:04
|
(9) Никогда такого не было, и вот - опять )))
|
|||
11
Fragster
гуру
09.11.17
✎
14:06
|
||||
12
mistеr
09.11.17
✎
14:10
|
(9) Да, я поторопился с выводами. Если подумать, то в наборе записей всегда есть отбор, поэтому не массив параметров, а WHERE. Но уверенность в том, что не "каждую строку по отдельности", остается. Какой смысл ставить очевидный барьер производительности?
|
|||
13
Ненавижу 1С
гуру
09.11.17
✎
14:13
|
(12) а как будет выглядеть этот запрос, например, при записи набора из 1000 строк?
|
|||
14
Волшебник
модератор
09.11.17
✎
14:14
|
(4) Он правду говорит.
|
|||
15
Филиал-msk
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) РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей().Записать()
какой здесь отбор всегда есть? |
|||
18
Филиал-msk
09.11.17
✎
14:21
|
(17) Естественный (:
|
|||
19
H A D G E H O G s
09.11.17
✎
14:24
|
(17) Здесь отбор на тех, кто свой код тестит на копии и смотрит в результат или не тестит и потом ищет бэкапы.
|
|||
20
mistеr
09.11.17
✎
14:24
|
(15) Для INSERT скорее всего массив параметров. Для UPDATE, DELETE отбор.
(17) Если отбор не установлен, значит будет DELETE без отбора, то есть на весь регистр. Я имел в виду, что набор обрабатываемых строк всегда можно идентифицировать отбором. |
|||
21
Ненавижу 1С
гуру
09.11.17
✎
14:26
|
(20) "Для INSERT скорее всего массив параметров. Для UPDATE, DELETE отбор."
ты несешь какую-то дичь |
|||
22
mistеr
09.11.17
✎
14:31
|
(21) Возможно. Просвети, как на самом деле.
|
|||
23
HEKPOH
09.11.17
✎
14:32
|
При сохранении информации при использовании в программном коде объекта МенеджерЗаписи Платформа сама создает объект НаборЗаписей, а его уже записывает
|
|||
24
Ненавижу 1С
гуру
09.11.17
✎
14:34
|
(22) я уже писал:
1. один DELETE стирает все старые записи согласно отбора 2. куча INSERT где по одной записи вставляются новые |
|||
25
mistеr
09.11.17
✎
14:38
|
(24) А UPDATE как?
|
|||
26
mistеr
09.11.17
✎
14:38
|
UPDATE не делается?
|
|||
27
Ненавижу 1С
гуру
09.11.17
✎
14:39
|
(25)(26) нет там никаких UPDATE
|
|||
28
Филиал-msk
09.11.17
✎
14:41
|
(24) Если "записать(ложь)", то delete нет, сразу поток insert
|
|||
29
Ненавижу 1С
гуру
09.11.17
✎
14:42
|
(28) согласен
|
|||
30
H A D G E H O G s
09.11.17
✎
14:43
|
Набор круче Менеджера только тем, что Delete делается 1 раз. Вот и все. Толпу менеджеров можно обернуть в
НачатьТранзакцию() и ваш SDD будет жить спокойной жизнью. |
|||
31
Мандалай
09.11.17
✎
15:13
|
Чет затихло, я думал тыщу постов наберет :)
|
|||
32
Мандалай
09.11.17
✎
15:14
|
Всем спасибо, за ответы.
Я так понял, что мы пришли к единому мнению... |
|||
33
Fragster
гуру
09.11.17
✎
17:05
|
(30) если есть подписки при записи/перед записью, то они в случае наобра также один раз отработают
|
|||
34
Cyberhawk
09.11.17
✎
17:50
|
(32) Огласи это единое мнение
|
|||
35
Сияющий в темноте
09.11.17
✎
22:52
|
менеджер работает по одной записи,иногда это очень удобно и блокировка идет только в момент записи,то есть можно избежать столкновения транзакций
не всегда хорошо,если одна большая транзакция |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |