Вход | Регистрация
 

Быстрая и наглая очистка таблицы Обороты регистра накопления. Кто пробовал?

Быстрая и наглая очистка таблицы Обороты регистра накопления. Кто пробовал?
Я
   Dwarrior
 
23.07.19 - 17:55
Доброго времени суток!

Задался задачей сжать базу УТ 10.3 на MSSQL. Как выяснилось, нехилый объем занимает таблица Обороты регистра Продажи за последние 10 лет.
Как ее очистить? Решил на тестовой базе нагло и быстро выполнить "truncate table". Думал, сломал обороты. Ан нет! Запрос к Продажи.Обороты выполняется и показывает правильные цифры! Платформа видимо при отсутствии записей в оборотах считает их заново из основной таблицы. И, кстати, создает новые записи в Оборотах, за затронутый период.

Отчеты, использующие обороты, формируются. Документы проводятся. Вроде все отлично.

Теперь вопрос - кто-нибудь так делал? Это не грозит какими-то дальнейшими проблемами? Опасаюсь делать такое же в боевой базе
 
 
   ChMikle
 
1 - 23.07.19 - 17:57
Из конфигурации удали этот регистр, базу сохрани, а потом заново создай в конфигурации и снова сохрани
   lubitelxml
 
2 - 23.07.19 - 17:58
может все-таки свернуть БД?
   Dwarrior
 
3 - 23.07.19 - 17:59
(1) Так потеряю ж данные регистра? Данные нужны, за все 10 лет
   Dwarrior
 
4 - 23.07.19 - 17:59
(2) Типовым методом? Нет, нужна аналитика продаж за 10 лет
   ChMikle
 
5 - 23.07.19 - 18:00
(3)Как выяснилось, нехилый объем занимает таблица Обороты регистра Продажи за последние 10 лет.
Как ее очистить?
   Dwarrior
 
6 - 23.07.19 - 18:04
(5) Так речь же про Обороты, а не про Основную таблицу регистра!
   Вафель
 
7 - 23.07.19 - 18:06
нужно было не все удалять, а только за старые периоды.
и это можно делать через настройки регистров
   Dwarrior
 
8 - 23.07.19 - 18:10
(7) УТ 10.3 в таком режиме совместимости, что нет начального периода расчета итогов. Только конечный.
Удалить обороты старого периода - хороший план, но в этой базе доступен только ПОСЛЕДОВАТЕЛЬНОЙ очисткой наборов записей по каждому регистру, что очень тяжело и муторно.
   xXeNoNx
 
9 - 23.07.19 - 18:58
Опомнитесь, Вы нарушаете лицензионное соглашение
   Смотрящий
 
10 - 23.07.19 - 19:30
(9) Да плевали на него все. Лицухи есть, итс есть - идите лесом
   xXeNoNx
 
11 - 23.07.19 - 19:33
(10) БГ, прости их, неразумных
   mistеr
 
12 - 23.07.19 - 20:11
(11) Ты хотел сказать БН.
   ДенисЧ
 
13 - 23.07.19 - 20:17
отключи использование итогов
   hhhh
 
14 - 23.07.19 - 22:32
(12) всё ж таки БГ
   Aleksey
 
15 - 24.07.19 - 03:26
   ink-nsk
 
16 - 24.07.19 - 06:11
2(0) Итоги не забудь пересчитать. )))))))
   Лефмихалыч
 
17 - 24.07.19 - 07:26
(0) чем ты занимался последние 12 лет таким, что это для тебя сюрприз?
итоги пересчитай. Иначе, когда пользователи набегут, устанешь на жалобы отвечать что-нибудь невнятное
   ptiz
 
18 - 24.07.19 - 08:48
(0) "Запрос к Продажи.Обороты выполняется и показывает правильные цифры" - за какой период показывает правильные цифры? Период итогов какой установлен?
   ptiz
 
19 - 24.07.19 - 08:49
И толку от такой очистки - ноль, только вред.
   Dwarrior
 
20 - 24.07.19 - 10:14
(19) Польза такая - размер базы уменьшился с 900Гб до 800Гб. По работе - никаких замедлений, обороты продаж считаются правильно (и быстро, что удивительно, нафик тогда вообще Обороты нужны?), документы проводятся.

(18) за любой, таблица оборотов очищена полностью. Период итогов - февраль 2019.
(9) Да, верно, нарушаем. Но кто докажет и кому это нужно? Оно само сломалось
(17) последние 12 лет не было нужды лезть в базу на уровне SQL. А сейчас есть - быстро и безболезненно уменьшить базу.
Пересчитать итоги по регистру Продажи?
   1Сергей
 
21 - 24.07.19 - 10:19
(20) я бы ожидал, что оно скоро всё упадёт, если в итогах одно, а в основной таблице другое.
Самому не стрёмно?
   Кац
 
22 - 24.07.19 - 10:25
(20) Сомнительная польза - уменьшить размер базы на ~10%.
   unregistered
 
23 - 24.07.19 - 10:29
(20) > Польза такая - размер базы уменьшился с 900Гб до 800Гб.

А с чего ты решил, что это польза?
Иметь риск получения кем-либо из пользователей некорректных данных, и только лишь ради экономии чуть более 10% от размера базы.

Ответьте себе на простой вопрос - а какой смысл от этой экономии 100Гб? База стала работать быстрее? - Нет конечно.
Единственный сомнительный плюс - экономия дискового пространства на базу и бекапы. Но при нынешней копеечной стоимости Гб это достижении не выглядит таким уж значимым...
   Dwarrior
 
24 - 24.07.19 - 10:47
(21) Стремно, поэтому и спрашиваю совета у людей. Если это потенциально опасная операция - то лучше не делать конечно. Но пока все работает.
(22) Так это только Продажи. Еще другие регистры есть:) В итоге 50% удалось выкроить
(23) Быстрее должны проводиться операции обслуживания базы (обновление статистики, перестроение индексов). Экономия места на сервере, да. Это важно, если расширение трудно реализовать - гипервизоры, дисковые полки с 100% загрузкой и спец. дисками.

Кстати, попутный вопрос - у кого-нибудь есть базы более 1Тб? Надо ли их делить на несколько mdf? Стабильно ли работает?
   ptiz
 
25 - 24.07.19 - 10:58
(20) "за любой, таблица оборотов очищена полностью" - (с) не верю
Даже проверил в профайлере. Запрос за целый месяц - обращается к таблице итогов, даже если она пустая. И вернет пустоту.

exec sp_executesql N'SELECT
T1.Fld4328Turnover_,
T1.Fld4329Turnover_
FROM (SELECT
ISNULL(CAST(CAST(SUM(T2._Fld4329) AS NUMERIC(27, 2)) AS NUMERIC(27, 2)),0.0) AS Fld4329Turnover_,
ISNULL(CAST(CAST(SUM(T2._Fld4328) AS NUMERIC(27, 3)) AS NUMERIC(27, 3)),0.0) AS Fld4328Turnover_
FROM dbo._AccumRgTn4333 T2 WITH(NOLOCK)
WHERE T2._Period >= P1 AND T2._Period < @P2 AND (T2._Fld4329 <> @P3 OR T2._Fld4328 <> @P4)
HAVING (ISNULL(CAST(CAST(SUM(T2._Fld4329) AS NUMERIC(27, 2)) AS NUMERIC(27, 2)),0.0)) <> 0.0 OR (ISNULL(CAST(CAST(SUM(T2._Fld4328) AS NUMERIC(27, 3)) AS NUMERIC(27, 3)),0.0)) <> 0.0) T1',N'P1 datetime2(3),@P2 datetime2(3),@P3 numeric(10),@P4 numeric(10)','4008-06-01 00:00:00','4008-07-01 00:00:00',0,0
   Dwarrior
 
26 - 24.07.19 - 11:19
(25) В консоли запросов выполняю запрос:
ВЫБРАТЬ
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.КоличествоОборот,
    ПродажиОбороты.СтоимостьОборот
ИЗ
    РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты

Период - январь 2015. Все данные на месте
   ptiz
 
27 - 24.07.19 - 11:36
(26) Чему равен &КонецПериода? Точно, до секунды.
   unregistered
 
28 - 24.07.19 - 11:39
(24) > у кого-нибудь есть базы более 1Тб? Надо ли их делить на несколько mdf? Стабильно ли работает?

Поищи в сети описание проекта "Деловые Линии". У них база на самописной конфе более 2Тб. Было в прошлом или позапрошлом году. Сейчас, наверное, уже ещё больше.
   unregistered
 
29 - 24.07.19 - 11:43
(24) > Быстрее должны проводиться операции обслуживания базы... Экономия места на сервере...

Это всё понятно. Но 10%? Я понимаю, если бы речь шла хотя бы о трети базы или половине.
   ptiz
 
30 - 24.07.19 - 11:51
(24) > 1Тб на ОФ 8.2 - норм крутится. Глупостями типа чистки таблицы итогов не занимаемся. А если уж очень хочется, то есть штатный метод - ставишь итоги на 01.01.2001 и не двигаешь. В последних платформах 8.3 вообще можно любой период хранения итогов выбирать (например, только последний год).
 
 Рекламное место пустует
   ink-nsk
 
31 - 24.07.19 - 12:29
2(24) Про обслуживание базы - это про что? Ты итоги пересчитал после псевдооптимизации?
Это из оперы на 31 число одна сумма - на первое другая.
Т.е. тут за полный период программа даст цифры, а за пол месяца - хрен.
   Dwarrior
 
32 - 24.07.19 - 16:30
(27) Период 01.01.2015-15.01.2015
(29) Так о том и речь. Регистр Продажи не единственный. В общем и целом сэкономил 50% размера базы.
(31) Обслуживание базы - обновление статистики и перестроение индексов средствами MSSQL.

Ну в принципе, я мысль понял - "Недокументированные возможности непредсказуемы и их использование вред".
   Ёпрст
 
33 - 24.07.19 - 16:35
Лучше б сжатие таблиц сделал, всяко твоя базенка похудела бы в разы.
   Ёпрст
 
34 - 24.07.19 - 16:36
на вот, почитай на ночь
http://catalog.mista.ru/public/114634/
   Ёпрст
 
35 - 24.07.19 - 16:38
ну и это, в догонку
http://catalog.mista.ru/public/692209/
   ptiz
 
36 - 24.07.19 - 20:19
(32) А теперь поставь 01.01.2015-31.01.2015 23:59:59


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.