Solución de problemas de recálculo de fórmulas DAX
Siempre que se producen cambios en el modelo de datos de su libro de trabajo, Power Pivot realiza un análisis de los datos existentes para determinar si se requiere un nuevo cálculo y realiza la actualización de la manera más eficiente posible.
Power Pivot maneja lo siguiente, durante el recálculo de fórmulas DAX:
- Dependencies
- Secuencia de recálculo para columnas dependientes
- Transactions
- Recálculo de funciones volátiles
Dependencias
Cuando una columna depende de otra columna y el contenido de esa otra columna cambia de alguna manera, es posible que sea necesario volver a calcular todas las columnas relacionadas.
Power Pivot siempre realiza un recálculo completo para una tabla, porque un recálculo completo es más eficaz que comprobar los valores modificados. Los cambios que desencadenan el recálculo pueden incluir eliminar una columna, cambiar el tipo de datos numéricos de una columna o agregar una nueva columna. Estos cambios se consideran cambios importantes. Sin embargo, cambios aparentemente triviales, como cambiar el nombre de una columna, también pueden desencadenar un nuevo cálculo. Esto se debe a que los nombres de las columnas se utilizan como identificadores en las fórmulas de DAX.
En algunos casos, Power Pivot puede determinar que las columnas se pueden excluir del recálculo.
Secuencia de recálculo para columnas dependientes
Las dependencias se calculan antes de cualquier nuevo cálculo. Si hay varias columnas que dependen unas de otras, Power Pivot sigue la secuencia de dependencias. Esto asegura que las columnas se procesen en el orden correcto a la máxima velocidad.
Actas
Las operaciones que recalculan o actualizan datos se llevan a cabo como una transacción. Esto significa que si falla alguna parte de la operación de actualización, las operaciones restantes se deshacen. Esto es para asegurar que los datos no se dejen en un estado parcialmente procesado. Sin embargo, no puede administrar las transacciones como lo hace en una base de datos relacional o crear puntos de control.
Nuevo cálculo de funciones volátiles
Las funciones de DAX como NOW, RAND o TODAY no tienen valores fijos y se denominan funciones volátiles. Si estas funciones de DAX se utilizan en una columna calculada, la ejecución de una consulta o filtrado generalmente no hará que se vuelvan a evaluar para evitar problemas de rendimiento.
Los resultados de estas funciones de DAX solo se vuelven a calcular cuando se vuelve a calcular toda la columna. Estas situaciones incluyen la actualización desde una fuente de datos externa o la edición manual de datos que provocan la reevaluación de las fórmulas DAX que contienen estas funciones.
Sin embargo, dichas funciones siempre se volverán a calcular si se utilizan en la definición de un campo calculado.