Использование представлений в базе данных для оптимизации производительности

Данный материал предназначен для продвинутых пользователей. Если у вас есть вопросы по применению, обратитесь в Техническую поддержку BPMSoft.

Один из способов улучшить производительность запросов в базе данных — использовать представления (view).

Представления полезны при следующих ситуациях:

  • Часто выполняются сложные запросы с несколькими таблицами;
  • Медленно работают запросы с JOIN, GROUP BY и агрегацией;
  • Запросы с фильтрами на больших таблицах выполняются долго;
  • Запрос возвращает всю таблицу, а бизнес-логика использует лишь часть данных.

Создание представления

Чтобы создать представление, выполните следующие шаги:

  1. Добавьте новый объект в конфигурацию системы.
  2. В разделе «Поведение» объекта установите свойство «Представление в базе данных».

Рисунок 1 — Свойство «Представление в базе данных»

Рисунок 1 — Свойство «Представление в базе данных»

  1. Добавьте колонку Id со следующими свойствами:
    • Тип данных — «Уникальный идентификатор»;
    • Обязательность — «На уровне приложения»;
    • Значение по умолчанию — «Новый идентификатор»;
    • Режим использования — «Расширенный».

Рисунок 2 — Выбор значения по умолчанию

Рисунок 2 — Выбор значения по умолчанию

  1. Вернитесь к свойствам объекта и выберите в поле «Идентификатор» раздела «Настройки объекта» добавленную колонку Id.
Примечание. Можно не добавлять колонку Id вручную. Для этого достаточно унаследовать объект от BaseEntity. Тогда система автоматически добавит поля CreatedOn, CreatedById, ModifiedOn и ModifiedById. Однако это также снизит производительность, так как будут унаследованы и другие поля.
  1. Добавьте другие необходимые колонки, например, UsrAddress и UsrAddressType.
  2. Выполните скрипт для создания представления в базе данных.
PostgreSQL
create view "UsrVwContactAddress"
as
select
    "ContactAddress"."Id",
    "ContactAddress"."Address" as "UsrAddress",
    "AddressType"."Name" as "UsrAddressType"
from
    "ContactAddress"
    inner join "AddressType"
        on "ContactAddress"."AddressTypeId" = "AddressType"."Id";
Microsoft SQL Server
CREATE VIEW UsrVwContactAddress
AS
SELECT
    ContactAddress.Id,
    ContactAddress.Address AS UsrAddress,
    AddressType.Name AS UsrAddressType
FROM
    ContactAddress
    INNER JOIN AddressType
        ON ContactAddress.AddressTypeId =  AddressType.Id;

При создании представления учитывайте следующие ограничения:

  • Названия полей в базе данных должны совпадать с названиями колонок объекта. Исключение — объекты типа «Справочник». В этом случае к названию колонки добавляется постфикс "Id" (например, UsrAccountId);
  • Количество колонок объекта и полей в представлении должно быть одинаковым. Если их будет больше, система выдаст ошибку. Если меньше, производительность снизится;
  • Представление должно соответствовать требованиям системы. Для этого нужно реализовать поля CreatedOn, CreatedById, ModifiedOn и ModifiedById;
  • Названия представления и полей должны учитывать префикс, используемый в системе (системная настройка «Префикс названия объекта»).

Рекомендуем изучить

Общие принципы диагностики проблем с производительностью

Материал был полезен для вас?
Вебинар: 22 апреля в 11:00
Приглашаем вас на вебинар «BPMSoft – от выбора к реальным процессам», где покажем, как компании на практике сокращают time-to-market и масштабируют бизнес с помощью решений BPMSoft.
Регистрация на мероприятие
Готовы сделать выбор CRM?
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Готовы сделать выбор CRM? (детальная)
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Готовы сделать выбор CRM?
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Готовы сделать выбор CRM? (детальная)
Оставьте заявку, и наши эксперты бесплатно проконсультируют вас, подберут подходящую конфигурацию и рассчитают стоимость проекта.
Оставить заявку
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Демонстрационная версия BPMSoft
Заполните заявку для получения бесплатного доступа к демонстрационному стенду на 14 дней.
Типовое внедрение
Внедрите BPMSoft CRM в свою компанию всего за 8 рабочих дней по фиксированной цене! Заполните заявку для уточнения условий.
Заказать презентацию
Наш менеджер свяжется с Вами в ближайшее время.
Рассчитать стоимость
Задать вопрос
Карта сценариев использования ИИ для управления маркетингом, продажами и сервисом
Заполните форму и мы отправим исследование на E-mail
Присоединяйтесь к партнерской сети BPMSoft
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время
Тип партнерства*
Управление полным жизненным циклом клиента: от генерации лидов и продаж до внедрения, поддержки и продления подписки.
Разработка собственного Приложения – производного программного обеспечения, созданного на платформе BPMSoft (Базовое ПО).
Есть вопросы?
Не нашли для себя подходящую вакансию, или остались вопросы?
*
Есть вопросы?
Не нашли для себя подходящую вакансию, или остались вопросы?
*
Стать образовательным партнёром
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Заявка на консультацию
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Подписка
Спасибо!
Ваша заявка принята.
Наш сотрудник свяжется с вами в течение 1-2 рабочих дней.
Внимание!
Обнаружена ошибка.
Проверьте вашу почту
Для завершения подписки перейдите по ссылке в письме, которое мы только что отправили. Если письма нет во «Входящих», проверьте папку «Спам».
Telegram Подписаться
Уважаемые клиенты! Предупреждаем о случаях недобросовестной конкуренции и мошенничестве в сети Интернет.
Подробнее