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

И немного теории, на которой я основываюсь.
Общеизвестный факт, что MSSQL создает статистику только по самой левой колонке индекса и хранит там 200 интервалов распределения значений.
В индексах типовой бухгалтерии 3.0 левой колонкой идет "ОбластьДанныхОсновныеДанные", тип Число. Если разделение не используется, то в этом поле везде ноль. Ниже – пример такого индекса (регистр бухгалтерии). 49 млн записей, все собрались в одной строке гистограммы.
https://ibb.co/f2hPOd
Сервер создает колоночные статистики по всем полям, которые участвуют в запросах
https://ibb.co/cJY63d
Например, по регистратору
https://ibb.co/cAHkUJ
1 Мыш
 
17.07.18
12:45
(0) Режь всё, что входит в подсистему "РаботаВМоделиСервиса". Как закончишь, пора будет на пенсию. Новую, повышенную )