Повышение скорости работы

Для улучшения масштабируемости системы в TDMS 4.0 структура базы данных (схема таблиц) была изменена следующим образом:

  • таблица TMessage поделена на две таблицы:
    • TMessage — аналог прежней таблицы, но с радикально уменьшенным количеством полей. Таблица не хранит тела сообщений,
    • TMessage Source- хранит тела исходных сообщений;
  • Таблица TLinkAttr поделена на три таблицы:
    • TLinkAttr — содержит только иерархические связи экземпляров объектов с другими объектами, выборками, корневыми узлами и т.п.,
    • TMessageAttach — хранит ссылки на вложения в почтовых сообщениях. Начиная с TDMS 4.0, почта хранит не только вложения-объекты, но и файлы,
    • TLinkSys — системные типы связей. Эта таблица содержит основную часть метаданных системы.

Одной из важных черт TDMS является возможность персонального назначения прав на каждый объект системы, позволяющая ограничивать доступ вплоть до видимости объекта отдельными пользователями или группами. Однако подобная модель достаточно затратна с точки зрения требований к вычислительным ресурсам. В TDMS 4.0 разрешена ранее нерешенная проблема объединения поискового запроса и проверки прав, что повышает производительность ряда запросов на 50−80%.

Для работы с СУБД Oracle версий 10g и 11g TDMS 4.0 использует новые библиотеки доступа к данным OCCI, разработанные компанией Oracle. Эти компоненты позволяют более полно использовать возможности Oracle и устраняют ряд проблем, возникавших при работе через ADO и OraOLEDB.

Столбцы таблиц в базе данных, редактируемых через атрибут типа «таблица», могут быть проиндексированы.

Рис. 1. Столбцы табличного атрибута могут быть проиндексированы Рис. 1. Столбцы табличного атрибута могут быть проиндексированы

Команда тестеров и разработчиков проделала большую работу по выявлению узких мест в производительности системы, что позволило значительно повысить ее производительность в целом за счет:

  • TLinkAttr — содержит только иерархические связи экземпляров объектов с другими объектами, выборками, корневыми узлами и т.п.,
  • TMessageAttach — хранит ссылки на вложения в почтовых сообщениях. Начиная с TDMS 4.0, почта хранит не только вложения-объекты, но и файлы,
  • TLinkSys — системные типы связей. Эта таблица содержит основную часть метаданных системы.
    • добавления новых индексов и смены ряда кластерных индексов;
    • оптимизации ряда динамических запросов и хранимых процедур;
    • кэширования и уменьшения количества запросов к базе данных при работе из программного кода;
    • одновременной (пакетной) выгрузки коллекций файлов.