Имя: Пароль:
1C
1С v8
Быстрое удаление записей из непериодического РС по условию
0 aleks-id
 
28.09.11
12:01
есть непериодический РС ПрайсыПоставщиков не подчиненный регистратору, измерение НоменклатураПоставщика (справочник НоменклатураПоставщиков), ресурсы Цена и Остаток. у элемента справочника НоменклатураПоставщиков есть реквизит - Владелец (Справочник Партнеры). необходимо перед записью новых прайсов поставщика удалить все старые записи по реквизиту Владелец измерения НоменклатураПоставщика.  вариантов вижу 2
1. запрос отбирает НоменклатуруПоставщиков по заданному Партнеру из справочника НоменклатураПоставщика. при обходе результата запроса последовательно находим и удаляем запись из РС.
2. запрос отбирает записи из РС по всем Партнерам кроме заданного, результат загружаем в НаборЗаписей и записываем одним махом.
собственно вопрос - какой из способов быстрее? записей может быть более 200 тыс...
1 DrShad
 
28.09.11
12:05
создаешь НЗ с отбором, читаешь, в него пустую таблицу и записываешь
2 aleks-id
 
28.09.11
12:07
(1) не прокатит. записей может быть овер 9000 с разными измерениями. а отбор работает только на равенство.
3 hhhh
 
28.09.11
12:10
(2) добавить партнера в измерения регистра и не парить мозг.
4 aleks-id
 
28.09.11
12:13
(3) я знаю. но пока имеем то, что есть :(
5 Aprobator
 
28.09.11
12:15
запрос - отбираем только нужные записи. Выгружаем в ТЗ. Создаем набор и загружаем ТЗ. При загрузке все старые записи удаляются автоматом.
6 aleks-id
 
28.09.11
12:18
(5)>>Создаем набор и загружаем ТЗ
тоесть вариант 2. я собсно так и сделал, но начал уже сомневаться в скорости...
7 Aprobator
 
28.09.11
12:18
хотя 200 тыс записей. Это еще вопрос что быстрее будет. Сейчас репу почешу.
(6) не дочитал до конца )
8 H A D G E H O G s
 
28.09.11
12:19
Прямой запрос в SQL на DELETE со вложенным запросом по владельцу - поставщику.
В запрос - только инвертированный GUID поставщика передать.
И фсе.

Это если критично долго и планов обмена нет.
9 hhhh
 
28.09.11
12:20
(7) зависит от количества поставщиков у партнера.
10 aleks-id
 
28.09.11
12:20
(8) думал над этим. планы обмена есть, причем этот регистр кочует во все распределенные базы :(
11 aleks-id
 
28.09.11
12:22
(9) масло масляное ;)
12 H A D G E H O G s
 
28.09.11
12:22
(10) Критично долго?
13 aleks-id
 
28.09.11
12:24
(12) пока справляется за 10-15 минут. но дальше будет больше :(
вчера удалял, а в другой базе кто-то перепроведение запустил за квартал. сервак попритух, за ночь моя не отвисла. пришлось застрелить и начать чесать репу.
14 ptiz
 
28.09.11
12:25
(0) Записывай "одним махов".
200 тыс записей должно проглотить.
15 hhhh
 
28.09.11
12:30
(12) ну если РИБ, то сразу время умножай на 10.
16 guitar_player
 
28.09.11
12:51
(5), (14) а что менеджер печальнее работать будет, если удалить нужно на 3 порядка меньше записей?
17 Aprobator
 
28.09.11
13:39
(16) тестить надо, я с ним просто не работал.
18 aleks-id
 
28.09.11
14:48
вобщем добавил в РС новое измерение - Поставщик. хорошо хоть записей было чуть более 400к. руки бы поотрывал за такое проектирование...
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn