Back to top

Особенности работы разных СУБД

Опубликовано e-1c@mail.ru - вт, 08/23/2016 - 04:16

1С предприятие поддерживает 5 видов СУБД:

  • файловый вариант самого 1С
  • MS SQL
  • IBM DB2
  • 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