|
Быстрая очистка независимого регистра сведений... почему-то совсем не быстрая :( | ☑ | ||
---|---|---|---|---|
0
dave2000
27.03.15
✎
13:01
|
В регистре всего около 20 тыс записей. Очищаю его так:
НаборЗаписей = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей(); НаборЗаписей.Записать(); но оно долго думает, видимо подвисает... после 5-10 минут убиваю в диспечере задачу. В чем может быть причина? Или оно на самом деле должно так долго его чистить? |
|||
1
dave2000
27.03.15
✎
13:02
|
Может есть более быстрые способы его очистки?
|
|||
2
Ненавижу 1С
гуру
27.03.15
✎
13:03
|
если клиент-серверная, то есть
|
|||
3
Solemn
27.03.15
✎
13:03
|
(1) TRUNCATE
|
|||
4
olegves
27.03.15
✎
13:04
|
напиши хранимую процедуру на скуле и ее дергай - будет быстрее
|
|||
5
ДенисЧ
27.03.15
✎
13:05
|
(3) (4) Еретики! Вы нарушаете ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ!!!
|
|||
6
dave2000
27.03.15
✎
13:12
|
НаборЗаписей = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей();
НаборЗаписей.Прочитать(); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); Это ведь то же самое, что в (1), разницы ведь нет, верно? |
|||
7
dave2000
27.03.15
✎
13:15
|
(3) (4) как знать какую таблицу чистить? Что-то мне подсказывает, что одной таблицей там не обойдется.
|
|||
8
alex_shkut
27.03.15
✎
13:17
|
(6) Разница есть. Потеряешь время на чтение.
|
|||
9
Ненавижу 1С
гуру
27.03.15
✎
13:19
|
(7) если в обменах не участвует, то таблица там одна, узнается легко через ПолучитьСтруктуруХраненияБазыДанных
|
|||
10
olegves
27.03.15
✎
13:21
|
(9) если периодический РСв, то не одна. Профайлер нам поможет
|
|||
11
D_E_S_131
27.03.15
✎
13:31
|
А через "записьРегистра" не пробовал удалять?
|
|||
12
DexterMorgan
27.03.15
✎
13:47
|
Поменяй в конфигураторе режим записи, все очиститься
|
|||
13
dave2000
27.03.15
✎
14:36
|
(9) (10) (11) Периодический. Решил все таки набраться терпения и подождать, за 25 минут все удалилось :)
(12) Тоже вариант, не знал про него, надо запомнить Вчера 100тыс документов надо было удалить, обработкой оно за час удалило лишь 5 тысяч. Плюнул на это дело, удалил из конфигурации сам документ, сохранил конфигурацию, потом восстановил конфигурацию из копии. Документов нет, а заняло все 20 минут :) |
|||
14
Torquader
27.03.15
✎
17:52
|
Самое быстрое - это чистить по записям, то есть выбрать запросом все записи и чистить - не забывая закрывать и снова открывать транзакцию через 100-200 элементов - иначе ваша транзакция очистки "съедает" всю память.
|
|||
15
zak555
27.03.15
✎
17:53
|
(14) через менеджер записей ?
|
|||
16
mistеr
27.03.15
✎
18:06
|
(0) 10 минут для 20К записей действительно многовато. Может там модуль набора записей что-то химичит или подписки.
Попробуй перед Записать() НаборЗаписей.ОбменДанными.Загрузка = Истина; |
|||
17
vi0
27.03.15
✎
18:09
|
(14) быстрее будет на записи, а наборы записей
ну и транзации не нужны так то |
|||
18
John83
30.03.15
✎
16:57
|
(13) быстрее будет делать отбор по какому-нибудь измерению и дальше чистить
|
|||
19
D_E_S_131
30.03.15
✎
17:00
|
(17) А что такое "НаборЗаписей" по твоему?
|
|||
20
vi0
30.03.15
✎
17:09
|
(19) к регистрам можно применять термины Запись и Набор записей
в (14) коллега использует термин Запись |
|||
21
D_E_S_131
30.03.15
✎
17:34
|
(20) По другому спрошу. Чем:
отличается от:
|
|||
22
vi0
30.03.15
✎
17:53
|
(21) к чему вопрос? спроси прямо
|
|||
23
alle68
30.03.15
✎
18:01
|
(21) Если по этой валюте не более 1-й записи, то ничем.
Иначе это две большие разницы! |
|||
24
D_E_S_131
30.03.15
✎
18:12
|
(22) Ты написал, что НаборЗаписей сделает быстрее. Методика 1С гласит, что когда известны все значения измерений, то оптимальнее записывать менеджером записи. Вот и спрашиваю, почему твое мнение обратно мнению методистов.
|
|||
25
D_E_S_131
30.03.15
✎
18:14
|
(23) А если 3000 записей, то в чем будет разница?
|
|||
26
vi0
30.03.15
✎
18:14
|
(24) что за методика? поделись ссылкой
|
|||
27
dauster
30.03.15
✎
18:19
|
Чистил тяжелый РС (несколько миллионов записей) по комбинациям измерений.
1. ВЫБРАТЬ РАЗЛИЧНЫЕ Измерение1, Измерение2, ..., ИзмерениеN из РС 2. Дальше в цикле по найденным комбинациям НаборЗаписей.Отбор.Установить(Измерение1); ... НаборЗаписей.Отбор.Установить(ИзмерениеN); НаборЗаписей.Записать(); |
|||
28
alle68
30.03.15
✎
18:20
|
(25) Останется одна.
|
|||
29
DexterMorgan
30.03.15
✎
18:25
|
(24)Методика 1С гласит, что когда известны все значения измерений, то оптимальнее записывать менеджером записи
дай ссылку на эту методику |
|||
30
DexterMorgan
30.03.15
✎
18:30
|
(24) Менеджер записи в общем случае работает медленнее, потому что при записи менеджером сначала записывается пустой набор (для очистки записей), а потом набор с нужными данными, те запись происходит 2 раза всегда. Да и вообще в (21) ты сравниваешь делать запись 1 раз или 100500 (условно, потому что в цикле) и говоришь что 100500 раз записать быстрее
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |