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

Материал предназначен для продвинутых пользователей. Если у вас есть вопросы по применению, обратитесь в Техническую поддержку 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;
  • Названия представления и полей должны учитывать префикс, используемый в системе (системная настройка «Префикс названия объекта»).

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

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

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