Проблема с производительностью в DAX Studio: CallBackDataID

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

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

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

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

Оглавление

Где найти CallBackDataID

CallBackDataID можно найти в тайминге сервера внутри DAX Studio. Из-за их важности они выделены в выражении xmSQL. Если вы хотите оптимизировать свой DAX, лучше всего начать с поиска CallBackDataID .

Другой метод оптимизации заключается в использовании фильтров в , когда это возможно. Использование CALCULATE в фильтрах лучше, чем использование в качестве таблицы. FILTER — это итератор, и когда вы фильтруете таблицу, она будет повторяться с помощью . Наличие этих двух итераторов может замедлить ваш запрос.

Вот два примера запросов с CallBackDataID и без него .

Проблема с производительностью в DAX Studio: CallBackDataID

Это локализованная мера, которая определяет два вышеуказанных запроса.

Проблема с производительностью в DAX Studio: CallBackDataID

Верхняя мера повторяет таблицу продаж, умножает текущую цену и количество, а затем суммирует их. Нижняя мера проверяет, больше ли дата покупки 31 марта 2016 г. или равна ей. Наличие функции в мере создает CallBackDataID , поскольку она не использует CALCULATE .

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

Если вы щелкнете вкладку Server Timings внизу, вы увидите, что первое сканирование выделено. Это связано с наличием CallBackDataID .

Проблема с производительностью в DAX Studio: CallBackDataID

Вы также можете увидеть CallBackDataID в операторе xmSQL. Функция ЕСЛИ в мере выходит за рамки возможностей механизма хранения, поэтому она обращается за помощью к механизму формул .

Проблема с производительностью в DAX Studio: CallBackDataID

Как решить проблему с производительностью

Если вы запустите запрос, у которого нет CallBackDataID , вы увидите, что сканы больше не выделяются.

Проблема с производительностью в DAX Studio: CallBackDataID

Это связано с тем, что фильтр CALCULATE передается механизму хранения. Ему больше не нужна помощь формульного движка, потому что он может работать сам по себе.

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


Механизм хранения в LuckyTemplates —
измерение операторов и запросов VertiPaq в LuckyTemplates: советы и методы оптимизации
VertiPaq Analyzer в DAX Studio | Учебник по LuckyTemplates

Заключение

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

Leave a Comment

Расчет недельных продаж с помощью DAX в LuckyTemplates

Расчет недельных продаж с помощью DAX в LuckyTemplates

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

Что такое 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 для своих бизнес-отчетов.