0
nicxxx
17.07.18
✎
12:18
|
Вопрос: Насколько трудоемко будет вырезать из конфигурации общие реквизиты разделения данных? Стоит вообще этим заниматься?
БСП смотрел, в целом похоже, что там не очень много мест, но времени на глубокое изучение не было.
А теперь – о причинах, почему меня это интересует.
База БП 3.0, размер примерно 1 ТБ, из них 200 ГБ – это таблицы регистра бухгалтерии, записей от 50 до 250 млн. В таблицах на сервере поле ОбластьДанныхОсновныеДанные имеет тип Numeric(7,0), поэтому глобально я места не сэкономлю (примерно 9 ГБ приходится сейчас на это поле).
Основная цель – немного ускорить работу с базой, за счет:
*уменьшения размеров таблиц и индексов;
*ускорения выборки за счет уменьшения размера строки данных (и индексов) и более точных планов запросов;
*ускорения команды ‘update statistics’;
*уменьшения затрат на ведение колоночной статистики (может быть по некоторым полям ее вообще на надо будет вести отдельно, т.к. это поле окажется самым левым в индексе).
Небольшое ускорение операции с одной строкой в пересчете на миллионы строк дает значительную экономию времени. А в пересчете на год – еще больше, поэтому мне кажется, что цель оправдана.
И немного теории, на которой я основываюсь.
Общеизвестный факт, что MSSQL создает статистику только по самой левой колонке индекса и хранит там 200 интервалов распределения значений.
В индексах типовой бухгалтерии 3.0 левой колонкой идет "ОбластьДанныхОсновныеДанные", тип Число. Если разделение не используется, то в этом поле везде ноль. Ниже – пример такого индекса (регистр бухгалтерии). 49 млн записей, все собрались в одной строке гистограммы.
Сервер создает колоночные статистики по всем полям, которые участвуют в запросах
Например, по регистратору
|
|