Имя: Пароль:
1C
1С v8
Повышение скорости реструктуризации 1С 8.2
0 brato4karik
 
04.10.12
10:53
Добрый день всем формучанам. На текущем месте работы по наследству досталась сильно измененная БП. Архитектура базы очень неочевидная(к примеру реквизит докумета "Организация" добавлен как столбец табличной части, которая в свою очередь содержит в себе только одну строку) Но не суть. Документ этот основополагающий документ учета и этих документов порядка 2 мил. Соответственно есть необходимость добавить новые реквизиты в шапку документа. Реструктуризация базы может длиться несклько суток. Как можно ускорить этот процесс? Прямо или косвенно изменить типы данных? Размер базы около 300гб. СУБД MSSQL.
1 rs_trade
 
04.10.12
10:54
(0) как минимум можно грохнуть индексы и перевести базу в симпл
2 rs_trade
 
04.10.12
10:55
(0) можно сделать на пустой таблице, и потом перелить данные на скуле
3 МихаилМ
 
04.10.12
11:04
1с 81 и 82
при реструктуризации создает копию таблицы порциюми по 1000 строк
из-за этого и долго.

так что самый быстрый способ ручками сделать изменения
а точнее
сделать изменения в бд где мало записей подсмотреть с помощью ms sql profiler, что делает 1с.
воспроизвести без копирования и "лишних действий", те воспроизвести структуру бд, заполнить поля, перенести изменения из config,params,DBSchema, Files

как бонус - работу системы останавливать не нужно.
4 rs_trade
 
04.10.12
11:12
(3) а если:

1. убираем записи из таблицы
   SELECT * INTO [demo82].[dbo].[_Reference281_copy] FROM [demo82].[dbo].[_Reference281]
   truncate table [demo82].[dbo].[_Reference281]

2. добавляем свои реквизиты в пустую таблицу

3. из копии таблицы заливаем данные обратно

ниче не забыл?
5 rs_trade
 
04.10.12
11:15
+(4) базу в симпл что бы побыстрее
6 Xapac_2
 
04.10.12
11:18
ммм я тоже так хочу.
7 МихаилМ
 
04.10.12
11:38
(3)

можно в ддл триггере при создании таблицы копии  
переименовать и создать пустую

а при удалении вернуть назад с добовлением-удалением новых полей
но это простой случай реструктуризации, когда нет преименования полей и таблиц.
8 rs_trade
 
04.10.12
11:50
(7) слишком геморойно
9 brato4karik
 
04.10.12
11:52
Спасибо за советы, (прошу прощения за временное отсутствие) сейчас попробую проэмулировать предложенные варианты.

удалять индексы вариант в принципе подходит, но тут ситуация такая что индексных полей как раз нехватает (скорее буду добавлять индексные столбцы)

вот с создание пустой копии вариант  неплох можно попробовать(пока именно такая ситуация добавляю новые старые не удаляю)

по поводу разбиения на 1000 строк можно ли этим управлять? увеличить размер пакета? и таким образом подобрать соотношение под наиболее приемлеммый вариант
10 МихаилМ
 
04.10.12
11:59
(9)

управлять можно всем в комьютерном мире
поищите в бинарниках или в озу и исправте.

при переименовании удаление индексов бессмысленно.

перевод в simple режим заметного эффекта не даст, тк копирование талиц происходит в bulk режиме с минимальным журналированием.
11 упс
 
04.10.12
12:06
(10) как раз на операциях с минимальным журналированием и будет виден прирост производительности при переводе из full в simple или bulk-logged, на остальных операциях разницы не будет.
12 rs_trade
 
04.10.12
12:07
(9) да не, вариант из (1) кардинально не убыстрит обновление. вариант в (4) 15-30 минут займет.
13 МихаилМ
 
04.10.12
12:34
(11) интересно. проверю на реструктуризации.