Индексы в 1С 8.3 и 8.2
Использование индексов 1С — важнейший момент в оптимизации работы информационной системы 1С. Но они очень часто игнорируются разработчиками.
Ниже я попытаюсь рассказать, что же это такое — индексы 1С 8.3, и как их использовать.
Содержание
Что же такое индексы в 1С?
Индексы представляют собой структуру, позволяющую выполнять ускоренный доступ к строкам таблицы на основе значений одного или более ее столбцов. Индексы сокращают объем данных, которые необходимо считать, чтобы возвратить результирующий набор.
В 1С индексом таблицы является совокупность реквизитов с установленным флагом «индексировать». Но у каждой таблицы есть свои особенности. Например, в индекс у регистра бухгалтерии автоматически попадают поля период и счет. Их рекомендуют использовать для оптимизации работы системы.
Индекс хранится в отдельной таблице БД, где связывает определенные строки таблицы с ключами индексов. Т.е. при поиске не нужно обходить все строки базы данных, а последовательно по ключам отбирать наборы записей и перебирать уже небольшие наборы информации.
Из-за особенностей СУБД каждая из них накладывает свои ограничения на использования индексов:
Ограничения на индексы в файловой базе 1С
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
В файловой базе единственным ограничением является максимальная длина ключа индекса, которая ограничивается 1920 байтами. При попытке реструктуризации базы данных с ключом большей длины появится ошибка — «Длина ключа индекса превышает максимально допустимую«.
Ограничения на индексы в базе 1С на MS SQL
На MS SQL, согласно документации, к ограничениям по длине индекса добавляется еще и количество ключей индекса, если количество полей будет превышено, индекс просто обрежется:
- количество ключей индекса — максимум 16
- суммарная длина индекса — 900 байт
Рекомендации по оптимизации работы 1С
- не рекомендуется использовать большое количество измерений и субконто в регистрах бухгалтерии;
- в планах счетов в рекомендациях устанавливать не более 4 субконто;
- нежелательно использовать поля составного типа — это сильно понижает скорость работы системы;
- не рекомендуется в измерениях регистров использовать поля с примитивным типом (число, строка и т.п.), если необходимо использовать значения примитивных видов, лучше создайте справочник, где будут указываться данные значения. Например: если Вы используете дату как измерение, лучше создать справочник «Даты», где единственным реквизитом будет реквизит с типом «дата»;
- не индексируйте строковые поля большой длины — это уменьшает быстродействие системы.
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
Кирилл:
Например: если вы используете дату как измерение, лучше создать справочник «Даты», где единственным реквизитом будет реквизит с типом «дата».
Виктор:
Здравствуйте! Подскажите, в почему не рекомендуется в измерениях регистрах использовать поля с примитивным типом?
Денис:
если Вы используете дату как измерение, лучше создать справочник «Даты», где единственным реквизитом будет реквизит с типом «дата» — спасибо, поржал