Кэш данных: что это такое и как он помогает оптимизировать запросы

Кэш данных: что это такое и как он помогает оптимизировать запросы

В этом руководстве вы узнаете, что такое кэш данных и почему он важен. Кэш данных хранит биты данных, которые могут стать ценными для будущего использования.

Если вам потребуются те же фрагменты информации в будущей мере или действии, кэш данных предоставит необходимую информацию. Это избавляет систему от повторной выборки одних и тех же наборов данных.

В этом руководстве вы узнаете о восьми важных моментах, которые следует помнить при работе с кэшами данных в LuckyTemplates.

Кэш данных: что это такое и как он помогает оптимизировать запросы

Оглавление

Определение и назначение кэша данных

Кэш данных: что это такое и как он помогает оптимизировать запросы

Кэш данных — это временная таблица, созданная в памяти механизмом хранения . Эта временная таблица отправляется обработчику формул, который затем перебирает эту информацию и выполняет различные операции после запроса.

Кэш данных: что это такое и как он помогает оптимизировать запросы

Вся связь между механизмом формул и механизмом хранения всегда происходит в виде кэша данных. Механизм формул подготавливает планы запросов, а затем отправляет инструкции механизму хранения. Затем механизм хранения отправляет его обратно в механизм формул, который возвращает результат пользователю.

Кэш данных: что это такое и как он помогает оптимизировать запросы

Поскольку механизм формул не имеет прямого доступа к данным, хранящимся в DirectQuery и VertiPaq, он использует механизм хранения для кэширования данных.

Кэш данных: что это такое и как он помогает оптимизировать запросы

Кэш данных, отправляемый механизмом хранения, находится в несжатом формате. Это означает, что размер данных, хранящихся в инструменте Vertipaq, может быть уменьшен.

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

Как кэш данных влияет на оперативную память

Кэш данных: что это такое и как он помогает оптимизировать запросы

Если механизм хранения отправляет огромные куски кеша данных, это займет много места в оперативной памяти программного обеспечения. Кроме того, обработчику формул потребуется значительное количество времени для выполнения итераций и получения результата.

Поэтому, когда вы пишете свой код DAX, вам нужно понимать, что он должен быть написан таким образом, чтобы свести к минимуму количество строк в кэше данных.

Наилучшим сценарием было бы сопоставление количества строк, показанных в визуальном элементе, с количеством строк, возвращаемых в кэше данных.

В большинстве случаев трудно вернуть одинаковое количество строк. Если это произойдет, вам потребуется просмотреть свой код DAX и разбить его таким образом, чтобы оптимизировать кеш данных, созданный подсистемой хранения.

Как кэш данных оптимизирует запросы

Неоптимизированные функции

Кэш данных: что это такое и как он помогает оптимизировать запросы

Некоторые функции языка DAX не оптимизированы для механизма хранения. Чтобы лучше понять это, давайте рассмотрим пример.

Например, в вашем коде вместо SUMMARIZE можно использовать функцию . Функции SUMMARIZE и GROUPBY выполняют одну и ту же операцию. Тем не менее, есть заметные различия в зависимости от сценария.

Функция GROUPBY не оптимизирована для Storage Engine. Если вы используете функцию GROUPBY для таблицы фактов с 12 миллионами строк, она создаст кэш данных с таким же количеством строк. Это может быть от 600 МБ до 1 ГБ.

Этот размер может оказать большое давление на вашу оперативную память. Поэтому вместо использования GROUPBY используйте . Функция SUMMARIZE приводит к меньшему размеру кэша данных. Вы можете связать его с GROUPBY в качестве функции верхнего уровня.

Сокращение повторений

Когда вы пишете свои меры или запросы DAX, вам необходимо убедиться, что код, созданный за кулисами, подходит для механизма хранения.

Кэш данных: что это такое и как он помогает оптимизировать запросы

Вам нужно написать свой код DAX таким образом, чтобы создать кеш данных, который также можно использовать в последующих запросах. Преимущество этого заключается в том, что вместо выполнения отдельного сканирования с помощью VertiPaq механизм хранения проверит, был ли уже получен подобный запрос.

Если это так, то это означает, что его кеш данных доступен в памяти. Таким образом, вместо повторного сканирования запроса VertiPaq просто вернет его из кэш-памяти в обработчик формул.

Кэш данных: что это такое и как он помогает оптимизировать запросы

Если вы видите оператор CALLBACKDATAID в своем запросе механизма хранения, это означает, что эти запросы не могут быть кэшированы. Если в случае, если аналогичный запрос будет отправлен механизму хранения, он выполнит повторную итерацию.

Таким образом, VertiPaq должен будет вызвать обработчик формул для разрешения запроса. Это увеличивает общее время выполнения, поскольку в этом случае нельзя использовать кэш-память.

Заключение

Кэш данных — ваш лучший друг в языке DAX. Не забудьте написать свой код DAX таким образом, чтобы максимизировать пространство для хранения и сократить количество итераций инструмента VertiPaq. Вы можете повторно использовать кеш данных, уже созданный Storage Engine, чтобы сократить время выполнения запроса.


Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать