Для быстрой и комфортной работы в системе необходимо поддерживать оптимальную производительность хранилища данных. На это влияет много факторов, например, качество данных, способ их трансформации и визуализации. Производительность АХД напрямую влияет на скорость получения данных, расчета агрегатов и формирования OLAP-представлений.
Ниже в таблице приводим основные ошибки при построении хранилища данных, приводящие к просадке его производительности.
№ | Ошибка | На что влияет | Пример | Что делать | Причины |
---|---|---|---|---|---|
1 |
Множество локальных размерностей Количество уникальных записей по локальной размерности сильно меньше, чем строк в таблице фактов |
|
Таблица фактов куба содержит 12 млн строк, а локальные размерности - несколько значений, например, Да/Нет или Федеральный округ | Необходимо убрать локальную размерность и вынести значения в общую размерность (отдельную таблицу) |
При общей размерности со значениями Да/Нет Mondrian:
При локальной размерности со значениями Да/Нет Mondrian:
Выполнение операции получения уникальных значений (distinct) является дорогостоящей |
2 |
Не соответствие витрины данных данным, требуемым в отчете:
|
|
Отчет формируется с нарастающим итогом на текущий день (зависит от фактической даты формирования отчета) |
Необходимо выделять:
|
Общая витрина со всеми данными:
Расчет нарастающего итога при увеличивающемся объеме данных будет иметь отрицательный накопительный эффект на производительность отчета Витрина с подготовленными данными для отчета:
|
3 |
Высокая гранулярность данных:
|
|
Построчный отчет в разрезе номеров договоров |
Вместо отчета с источником OLAP необходимо делать отдельные таблицы и отчеты с источником Реестр |
OLAP:
Реестр:
|
4 | Разные значения атрибутов для одного элемента размерности |
|
У иерархии по организациям атрибут с полным наименованием содержит несколько вариантов написания Размерность построена на версионном справочнике, где в качестве элемента выводится значение, соответствующее нескольким строкам в справочнике |
Для UniqueName обеспечить уникальную запись в таблице размерности, т.е. исключить дублирующиеся значения (реализовать дедупликацию элементов иерархии) путем:
|
Если одному значению элемента иерархии в таблице размерности соответствует более одной строки с отличающимися значениями атрибутов, то фактически это является дублированием элементов размерности, и количество расчетов увеличивается на количество таких элементов, в результате, растет количество агрегатов и размер обрабатываемого запроса. |
5 | Первичные ключи для связи с кубом и поля в хранилище общей размерности имеют необоснованный длину и/или тип |
|
В качестве поля для связи с размерностью или поля в хранилище используется текстовое поле с полным наименованием контрагента или значением классификатора |
Для связи с размерностью и идентификации элементов размерности использовать ключи:
|
При использовании длинных текстовых наименований для связи (идентификации) элементов размерности тратятся существенные ресурсы на получение и сравнение ключевых полей в источниках куба и размерности. При обращении к элементам размерности в mdx формулах увеличивается размер запроса за счет длинных обозначений UniqueName |
6 | Не настроена фильтрация иерархий в оси строк/столбцов, недостаточность атрибутов уровня размерности для фильтрации данных |
|
Элементы размерности на оси/строк столбцов можно отфильтровать на основании атрибута иерархии, но на ось настроено скрытие пустых значений, а само значение атрибута (свойство элемента размерности):
|
Обеспечить уровень иерархии необходимыми атрибутами для возможности фильтрации Настроить (прописать) фильтр на оси строк/столбцов в соответствии с параметрами и условиями отчета, таким образом, чтобы элементы, которые не анализируются в отчете не выводились в отчет и не участвовали в расчете Уменьшить выборку элементов посредством фильтра - это приводит к уменьшению количества рассчитываемых агрегатов и размера запроса |
При отсутствии фильтра на оси строк/столбцов:
Таким образом, растет количество агрегатов и размер обрабатываемого запроса |
7 |
Неконсистентность данных:
|
|
|
|
При неконсистентности данных получение ожидаемого результат в отчете требует использования дополнительных расчетов и фильтров, что сказывается на общей производительности отчета. |