Учебники

Устранение неполадок пересчета формулы DAX

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

Power Pivot выполняет следующие действия при пересчете формул DAX:

  • зависимости
  • Последовательность пересчета для зависимых столбцов
  • операции
  • Пересчет энергозависимых функций

зависимости

Если столбец зависит от другого столбца, и содержимое этого другого столбца изменяется каким-либо образом, возможно, потребуется пересчитать все связанные столбцы.

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

В некоторых случаях Power Pivot может определить, что столбцы могут быть исключены из пересчета.

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

Зависимости рассчитываются до любого пересчета. Если есть несколько столбцов, которые зависят друг от друга, Power Pivot следует последовательности зависимостей. Это гарантирует, что столбцы обрабатываются в правильном порядке с максимальной скоростью.

операции

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

Пересчет летучих функций

Функции DAX, такие как NOW, RAND или TODAY, не имеют фиксированных значений и называются энергозависимыми функциями. Если такие функции DAX используются в вычисляемом столбце, выполнение запроса или фильтрации обычно не приводит к их повторной оценке, чтобы избежать проблем с производительностью.

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

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