Запрос DAX в LuckyTemplates — логические и физические планы запросов

Запрос DAX в LuckyTemplates — логические и физические планы запросов

В этом руководстве рассматриваются два плана запросов DAX в LuckyTemplates.

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

Это два плана запросов, которые генерируются обработчиком формул:

  • Логический план запроса
  • Физический план запроса

Каждый запрос DAX запускает эти два события.

Оглавление

Логический план запроса в LuckyTemplates

Это поток запросов DAX. В этой части сосредоточьтесь на третьем шаге — упрощении дерева логического запроса .

Запрос DAX в LuckyTemplates — логические и физические планы запросов

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

Для иллюстрации приведем пример запроса.

Запрос DAX в LuckyTemplates — логические и физические планы запросов

Если вы запустите это, вы получите результат 29 138.

Запрос DAX в LuckyTemplates — логические и физические планы запросов

Если вы запустите запрос в DAX Studio и включите вкладку «События плана запроса», вы увидите планы запросов. Среди двух типов план логического запроса отображается первым.

Запрос DAX в LuckyTemplates — логические и физические планы запросов

Каждая строка с отступом — это подзадача, построенная друг на друге. Первая строка — это окончательный результат вашего DAX. Другие строки суммируют и сканируют столбец «Количество» FactSales.

Первое слово перед двоеточием называется оператором .

Запрос DAX в LuckyTemplates — логические и физические планы запросов

Слова после двоеточия называются типами операторов .

Запрос DAX в LuckyTemplates — логические и физические планы запросов

Существует два типа типов операторов:

  • Реллогоп
  • ScaLogOp

RelLogOp — это вывод таблицы. DAX использует VertiPaq для сканирования столбца для создания таблицы. С другой стороны, ScaLogOp — это скалярный вывод; это означает, что это совокупное число. Если вы посмотрите на вторую и последнюю строку плана запроса, вы увидите, что она суммирует и получает количество FactSales' Quantity.

Планы логических запросов создают таблицу с одной строкой под названием «Общее количество», которая содержит сумму количества из таблицы FactSales.

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

Лучше всего стремиться к тому, чтобы увидеть как можно больше операторов «_VertiPaq». Это означает, что он сам выполняет всю работу по оптимизации ваших кодов DAX.

Физический план запроса в LuckyTemplates

Физический план запроса занимает второе место среди двух типов. Это четвертый шаг в потоке запросов DAX. Он имеет ту же древовидную структуру, что и план логического запроса.

После того, как логический план запроса построен, он отправляется в физический план запроса для выполнения. Если вы запустите тот же пример запроса, вы получите тот же ответ.

Запрос DAX в LuckyTemplates — логические и физические планы запросов

В частности, четвертым шагом в потоке запроса DAX является построение физического дерева плана запроса .

Запрос DAX в LuckyTemplates — логические и физические планы запросов

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

Это три типа операторов в физическом плане запроса:

  • LookupPhyOp
  • InterPhyOp
  • SpoolPhyOp

LookupPhyOp дает скалярные значения в заданном контексте строки. InterPhyOp выполняет итерацию данных по таблице строка за строкой. SpoolPhyOp получает результаты запроса VertiPaq, материализует их и сохраняет в памяти.

В четвертой строке плана запроса вы можете увидеть оператор ProjectionSpool, который означает, что запрос отправляется механизму хранения. Он повторяет результаты запроса с количеством записей.

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

Столбец Records , соответствующий SpoolPhyOp ProjectionSpool, показывает, сколько данных отправляется из механизма хранения в механизм формул. Таким образом, чем больше у вас записей, тем медленнее будет ваш запрос.

Если производительность DAX низкая, столбец «Записи» — хорошее место для начала поиска.


Расчеты DAX в LuckyTemplates: лучшие практики
Оптимизируйте функции DAX с помощью этого нового курса
5 стратегий для улучшения ваших навыков LuckyTemplates DAX

Заключение

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

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


Что такое 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? Все, что тебе нужно знать