Доп. индексы в файл 1Cv7.DDS

Если у вас SQL версия 1с77, то в файле 1Cv7.DDS хранится структура-описание базы данных

Вот например как описывается справочник БанковскиеСчета. Макроподстановки в «прямых запросах» так и работают, находят название, и подставляют таблицу.

В данный момент нам интересны индексы. Индексы используются для ускорения поиска в больших таблицах. Почему именно в больших? Да потому что запись-то страдает… нужно же еще и индекс обновить.

Вот реальный пример. Мне потребовалось искать документ по его номеру

, использую запрос вида like, но вот незадача, выполнение запроса 1,5 секунды(!!!). Когда дополз до индекса, понял что подходящего индекса просто нет, поэтому тупо в лоб перебирается вся таблица…. (т.к. она же не отсортирована по номеру).

В общем создал индекс с данным столбцом

Через MS SQL Server Managment Studio (MS SSMS)

Или же запросом

 

После создания индекса, запрос по номеру документа с 1,5 секунды стал выполняться 0,03 сек.

Но рано радоваться… У вас все получится если вы создавали индекс на запущенном предприятии, в ином случае при запуске в режиме не монопольно, вы получите ошибку нарушение целостности таблицы (Индекс есть, а описания нет….) Если зайдете монопольно, предприятие вообще грохнет индекс  😀 

Решение есть (не окончательное!!)

Добавляете в файл 1Cv7.DDS описание нового индекса

Немного опишу:

Колонка Описание
I=ZZ__DocNumber название индекса после «=»
Номер документа описание, можно написать все что угодно, но постарайтесь немного
0  Уникальность индекса (соответствует галке MS SQL)
DOCNO столбцы из чего состоит индекс (описывайте ровно также, иначе верификацию не пройдете)
0 кластеризованный/не кластированный индекс. У вас будет некластеризованные индексы, т.к. второй создать нельзя

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

После сохранении конфигурации вам (в момент реструктуризации, когда добавится/удалится какой либо объект), ваши данные слетят и придется заново добавлять эти изменения.

Как это автоматизировать, напишу позже в новой заметке.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *