Ускорение реструктуризации больших таблиц. Мой вариант

28.04.21

База данных - Администрирование СУБД

Тот случай, когда с документом или справочником работали годами, наколотили миллионы строк и десятки, а может, и сотни гигабайт данных, как вдруг бизнесу потребовалось добавить реквизитов.

Чтобы обеспечить согласованность данных при реструктуризации объекта платформа создает таблицы пустышки и аккуратно переносит все данные из таблиц в новые. Даже, если добавляется в шапку реквизит, это не спасет от реструктуризации табличных частей в том числе. 

Для реструктуризации тех же 100 Гб может банально не хватить технологического окна, особенно в режиме работы предприятия 24/7 и, как следствие, такие компании предпринимают все меры, чтобы это окно уменьшить. Вплоть до нарушения(?) лицензионного соглашения. 

В своей практике я предпочитаю использовать скрипт, который позволяет производить все манипуляции непосредственно в SSMS,  и оперативно отреагировать, если что то пошло не так.

 
Текст скрипта

-- !!!
--      ВНИМАНИЕ!!! КАЖДЫЙ БЛОК ВЫПОЛНЯЕТСЯ ОТДЕЛЬНО!!!
-- !!!
-- !!!
-- 0) Переходим в область рабочей базы
use Ch 
go
-- 0

-- 1) Переименовываем рабочую таблицу в резерв (табличные части)
exec sp_rename '_Document33_VT36','_Document33_VT36_data','OBJECT'
-- 1 /конец блока/

-- 2) Создаем  пустые таблицы  =  табличные части для ее реструктуризации (проверка на существование)

if OBJECT_ID('_Document33_VT36','U') IS NULL begin
    select TOP 1 * into _Document33_VT36 from _Document33_VT36_data 
end
-- 2 /конец блока/

-- 3) НА СТОРОНЕ 1С ВЫПОЛНЯЕТСЯ РЕСТРУКТУРИЗАЦИЯ  (создается нужный индекс в шапке средствами 1С)

-- 4) Удаляются фиктивные таблицы (табличные части) после реструктуризации (есть проверка на нулевой размер)

--if (select count(*) from _Document33_VT36) > 0 begin 
    drop table _Document33_VT36  
--end
-- 4 /конец блока/

-- 5) Переименовываем назад из резерва (табличные части)
exec sp_rename '_Document33_VT36_data','_Document33_VT36','OBJECT'
 -- 5 /конец блока/
 

 

На примере выше необходимо реструктуризировать документ Document33, у которого всего лишь одна табличная часть _Document33_VT36. Если табличных частей больше, то и добавлять лучше все табличные части, чтобы ничего не забыть.

Имена можно посмотреть с помощью метода ПолучитьСтруктуруХраненияБазыДанных().

ВНИМАНИЕ! Каждый блок исполнять отдельно! 0 - 2 в SSMS, потом перейти в конфигуратор, обновить и далее оставшиеся пункты в SSMS. 

 

Картинки с тестовой убрал под спойлер:

 

 

 

Тесты проводились на тележке 8.2.19

Все манипуляции с БД вне среды 1С делаются на свой страх и риск. Если нет понимания, что происходит, то лучше изучить вопрос

Вступайте в нашу телеграмм-группу Инфостарт

реструктуризация обновление BigData

См. также

Администрирование СУБД Системный администратор 1С v8.3 Россия Бесплатно (free)

В очередной раз столкнулся с тем, что очередные обновления тонкого клиента 1С для Mac OS, загруженные с сайта обновления ПО 1С, не устанавливаются через стандартный инсталлятор и дают ошибку. Но можно все установить вручную без сторонних приложений. Описываю процесс ручной установки тонкого клиента для платформы 8.3.27.1559 на Маке с OS Sequoia 15.5.

02.06.2025    1725    user1914479    14    

3

HighLoad оптимизация Администрирование СУБД Системный администратор Программист 1С v8.3 Бесплатно (free)

В финальной статье по докладу «Дамп – не приговор, а повод задуматься», с которым выступили на осенней конференции INFOSTART TECH EVENT 2024, рассказываем, чем может быть полезна информация, полученная из дампа.

27.05.2025    1676    it-expertise    0    

12

Администрирование СУБД Системный администратор 1С v8.3 Бесплатно (free)

Клиент-серверная архитектура 1С Предприятия 8.3 подразумевает работу в связке с так называемой системой управления базами данных (СУБД). Одной из самых распространённых и популярных до сих пор остается MS SQL Server.

19.05.2025    2625    Kostin1978    5    

4

HighLoad оптимизация Администрирование СУБД Системный администратор Программист 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Рассмотрим, почему при обновлении итогов регистров накопления СУБД может выбирать неоптимальный план запроса, и как это исправить.

28.04.2025    2709    Tantor    7    

26

HighLoad оптимизация Администрирование СУБД Системный администратор Программист 1С v8.3 Бесплатно (free)

Во второй статье по докладу «Дамп – не приговор, а повод задуматься», с которым выступили на конференции INFOSTART TECH EVENT 2024, рассмотрим, какую информацию содержат файлы дампа, чем она полезна и как ее анализировать.

14.04.2025    1597    it-expertise    7    

16

Администрирование СУБД Программист 1С v8.3 Бесплатно (free)

Где лежат данные идентификаторов, как прочитать, как поменять...

10.04.2025    1462    atdonya    0    

6

HighLoad оптимизация Администрирование СУБД Системный администратор Программист 1С v8.3 Бесплатно (free)

Опубликовали первую статью по итогам доклада «Дамп – не приговор, а повод задуматься», с которым выступали на конференции INFOSTART TECH EVENT 2024.

25.03.2025    1197    it-expertise    7    

10