13 мая 2011 г.

Ускорение "1С:Предприятие for Oracle" за счет сжатия таблиц

Кроме выступления Вадима Гусева на мероприятии "Модернизация системы управления бизнесом с помощью ERP-решений 1С с помощью инновационной технологической платформы Oracle" Андрей Забелин демонстрировал возможности OLTP-сжатия для увеличения производительности одного из бухгалтерских отчётов приложения "1С:Предприятие 8.2".

Ролик можно посмотреть здесь.
Как это ни странно на первый взгляд: при сжатии не только уменьшается объем данных на диске, но и возрастает скорость выполнения запроса !
Это происходит за счет уменьшения ввода-вывода (СУБД меньше читает и пишет на диск), а это самая ресурсоёмкая операция. И это происходит не на каком-то искусственном тесте, а в реальном приложении !

Программное окружение было аналогичным как в демонстрации Вадима.
Сервер приложений "1C:Предприятие" также работал под управлением ОС Oracle Linux x64 5U6.

Основная идея демонстрации – показать:
  • Возможности Enterprise Manager для быстрого обнаружения ресурсоёмкого SQL-запроса, который являлся причиной долгого выполнения одного из бухгалтерских отчётов приложения "1С:Предприятие 8.2";
  • Быстрота и удобство анализа плана SQL-запроса;
  • Удобство навигации от плана запроса к редактированию свойств таблицы;
  • Эффективность сжатия данных с помощью Advanced Compression, которое позволяет не только уменьшить объём данных на диске, но и значительно ускорить выполнение запроса за счёт уменьшения количества обрабатываемых блоков.

Поскольку Андрей (как и все мы впрочем) не является специалистом в бухгалтерском учёте, выбранный отчёт «Анализ субконто» и параметры этого отчёта могут показаться опытному бухгалтеру некорректными, но цель была одна - нагрузить БД таким образом, чтобы набор обрабатываемых данных был наибОльшим в тестовой БД.

К сожалению, в текущей версии "1С:Предприятие" не поддерживается настройка сжатия данных таблицы через интерфейс самой 1С, что приводит к возможной потери этой настройки при обновлении конфигурации 1С, но это уже совсем другая история ... Следите за следующими публикациями !

Приятного просмотра!
Cсылка: видео.

2 комментария:

  1. А то, что при втором запуске отчета данные уже были в буферном кеше после первого прохода это не имеет значения да?

    ОтветитьУдалить
  2. Вы невнимательно смотрели демо: перед вторым выполнением отчета Андрей перемещает таблицу для ее сжатия - "alter table xyz move".
    Соответственно, в кэше уже не будет старых блоков и отчет за данными полезет на диск, то есть инициирует ввод-вывод, но которого уже будет в 4 раза меньше!

    ОтветитьУдалить