Устранение неполадок при повторных вычислениях
В этом разделе представлены дополнительные технические советы, полезные при планировании времени повторного вычисления книги. Общие сведения о повторных вычислениях и обновлении данных книги см. в следующих разделах:
Различные способы обновления данных в PowerPivot
Зависимости
Если столбец зависит от другого столбца, а содержимое этого другого столбца изменяется каким-либо образом, то может потребоваться повторно вычислить все связанные столбцы. После того как в книгу PowerPivot вносится каждое изменение, PowerPivot для Excel проводит анализ существующих данных PowerPivot, чтобы определить необходимость повторного вычисления, и выполняет обновление самым эффективным способом.
Например, пусть таблица Sales связана с таблицами Product и ProductCategory, а формулы в таблице Sales зависят от обеих этих таблиц. Любые изменения в таблицах Product или ProductCategory приведут к необходимости повторного вычисления вычисляемых столбцов в таблице Sales. Это имеет смысл, если предполагается использование формул, выполняющих сведение продаж по категориям или по товарам. В этом случае, чтобы гарантировать правильность результатов, формулы, основанные на данных, должны быть пересчитаны.
PowerPivot всегда выполняет полный пересчет таблицы, так как это эффективнее, чем поиск изменившихся значений. К изменениям, вызывающим повторное вычисление, относятся такие важные изменения, как удаление столбца, изменение числового типа данных столбца или добавление нового столбца. Однако повторные вычисления могут также запускать такие изменения, которые внешне кажутся не столь важными, как, скажем, изменение имени столбца. Это происходит из-за того, что имена столбцов используются как идентификаторы в формулах.
В некоторых случаях подсистема PowerPivot для Excel может определить, что столбцы можно исключить из повторного вычисления. Например, если имеется формула, которая запрашивает значение [Product Color] из таблицы Products, а в таблице Sales изменяется столбец [Quantity], то повторное вычисление формулы не требуется, хотя таблицы Sales и Products связаны. Если же имеются формулы, зависящие от столбца Sales[Quantity], необходимо повторное вычисление.
Последовательность повторных вычислений для зависимых столбцов
Зависимости вычисляются перед любыми повторными вычислениями. Если существует несколько столбцов, зависящих друг от друга, PowerPivot руководствуется последовательностью зависимостей. Это обеспечивает правильный порядок обработки столбцов с максимальной скоростью.
Транзакции
Операции, выполняющие повторное вычисление или обновление данных, помещаются как транзакция. Это значит, что, если любая часть операции обновления завершается ошибкой, выполняется откат остальных операций, чтобы гарантировать, что данные не останутся в частично обработанном состоянии. Управление транзакциями, доступное в реляционной базе данных, и создание контрольных точек не поддерживаются.
Повторное вычисление изменчивых функций
Некоторые функции, такие как NOW, RAND или TODAY, не имеют фиксированных значений. Чтобы избежать проблем с производительностью, выполнение запроса или фильтрация обычно не вызывают повторного вычисления таких функций, если они используются в вычисляемом столбце. Результаты этих функций вычисляются повторно, только если пересчитывается весь столбец. Такие ситуации включают обновление данных из внешнего источника данных или изменение данных вручную, вызывающие повторное вычисление формул, которые содержат эти функции. Однако повторное вычисление таких изменчивых функций, как NOW, RAND и TODAY, выполняется всегда, если функция используется в определении меры.
См. также
Основные понятия
Добавление вычислений в отчеты, диаграммы и сводные таблицы