Особенности работы разных СУБД с 1С 8.3
Программист и настоящий эксперт по внедрению 1С обязан знать нюансы работы 1С Предприятия на разных системах управления баз данных.
В этой статье будут рассмотрены основные особенности работы всех СУБД, совместимых с 1С 8.3.
1С предприятие поддерживает 5 видов СУБД:
- файловый вариант самого 1С;
- IBM DB2;
- MS SQL;
- Oracle BD;
- PostgreSQL.
У каждой из них свои особенности и рекомендации. Рассмотрим каждую подробнее:
Файловая БД
В файловом режиме работы СУБД у 1С есть следующие особенности. В системе каждая таблица представлена 4 файлами:
- файл описания таблицы;
- файл записей;
- файл значений неограниченной длины (их выносят из основного файла записей для оптимизации);
- файл индексов.
- Ограничение размера одного из вышеперечисленных файлов 4 Гб дискового пространства.
- Длина ключа в индексе такой базы данных не может превышать 1920 байтов.
- Количество полей для индексации ограничивается 256 полями (в остальных СУБД всего 16 полей).
Microsoft SQL
Ключевая особенность СУБД MS SQL с 1С — максимальное количество таблиц в запросе 256. Может показаться, что много, однако при обращении по точке к полям составного типа Вы можете моментально получить все 256 таблиц.
PostgreSQL
- NULL так же, как и Oracle, при сортировке по возрастанию становится в конце результата.
- В режиме автоматических блокировок при чтении таблица блокируется целиком.
- В СУБД PostgreSQL сильно уменьшается производительность в режиме интенсивной работы, система как можно чаще требуется реиндексирование (метод REINDEX).
- Большое влияние на производительность PostgreSQL оказывает скорость работы жесткого диска — данные после команды COMMIT (фиксация транзакции) из кеша помещаются на диск. Это существенно повышает надежность, однако снижает производительность СУБД при записи информации (функция fsync). Поэтому считается, что эта СУБД является очень медленной в плане записи и удаления информации, однако это можно исправить.
- Можно достичь повышения надежности внедрением RAID — массивов в сочетании с блоками бесперебойного питания. Тем самым мы повысим надежность системы. После повышения надежности можно пренебречь включением функции fsync и тем самым существенно увеличить скорость работы системы.
- При вычислении разницы между датами, если в промежутке дат попадаются переходы с зимнего времени на летнее (и наоборот), СУБД PostgreSQL учитывает разницу. Пример — разница между 29.10.2013-00:00:00 и 30.10.2013-00:00:00 будет не 24 часа, а 25.
- СУБД неэффективно отрабатывает вид соединения — «ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ».
IBM DB2
- СУБД DB2 имеет нетипизированное значение NULL.
- DB2 чувствительна к регистру строковых значений при сравнении. Касается не только прямого сравнения, но и операций СГРУППИРОВАТЬ, ОБЪЕДИНИТЬ, РАЗЛИЧНЫЕ.
- Максимальная длина числового значения — 31 знак (в других СУБД — 38).
- Максимальная длина ресурса регистров бухгалтерии и накопления — 25 знаков (везде 32).
- Максимальное количество колонок в списке выборки — 1012.
- Максимальный размер поля неограниченной длины — 1 Гб.
- Аргументом у конструкции «ПОДОБНО» может быть лишь литерал, запрещено использование основных шаблонов.
- Производительность СУБД IBM DB2 существенно снижается при использовании подзапросов в условии соединения.
Oracle DB
- Нельзя использовать конструкции «ПЕРВЫЕ» и «УПОРЯДОЧИТЬ» внутри подзапроса условия «В (..подзапрос..)».
- NULL при сортировке по возрастанию становится в конце результата.
- На работу СУБД Oracle DB очень сильное влияние оказывает статистика планов запроса 1C.
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!