En este tutorial, aprenderá una técnica de optimización de Power Query para reducir el uso de RAM. Específicamente, aprenderá cómo reducir los números almacenados después de un lugar decimal . Esto es útil si se trata de columnas almacenadas en un formato de número decimal.
En este ejemplo, puede ver que el precio neto consume 11 MB de RAM, mientras que el costo total, el costo unitario y el precio unitario consumen 8 MB cada uno.

Cuando va a Power Query y hace clic en la opción de filtro de la columna Precio neto, puede ver que la columna almacena valores de hasta tres decimales.

Esto puede causar un problema de rendimiento . Si se almacenan varios dígitos como número decimal, el diccionario contendrá más valores únicos. Esto hará que VertiPaq cree una gran estructura de almacenamiento para el diccionario.
Por lo tanto, se recomienda optimizar estas columnas.
Tabla de contenido
Optimización de Power Query para columnas
Idealmente, desea almacenar valores de hasta dos decimales. Haga clic derecho en la columna que desea optimizar. Haga clic en Transformar > Redondo > Redondo .

Luego, establezca los lugares decimales en 2 y haga clic en Aceptar.

Una forma rápida de transformar todas las columnas de una sola vez es resaltándolas y luego siguiendo los mismos pasos.

Esto aplica el formato de número decimal a todas las columnas usando un solo paso. Una vez hecho esto, guarde su trabajo.
Comprobar el uso de RAM
Para verificar cuánta RAM se redujo, abra DAX Studio . Vaya a la pestaña Avanzado y haga clic en Ver métricas .

Al comparar el original con las columnas optimizadas, puede ver reducciones en el tamaño de la columna y el tamaño del diccionario.

Para este ejemplo, parecería que la diferencia en kilobytes no equivale a una buena reducción en el espacio de RAM. Sin embargo, si se trata de valores más distintos, como números con siete decimales, el ahorro en RAM sería excelente.
También puede notar que para la columna Precio unitario, la cardinalidad no cambia pero hay una reducción significativa en el tamaño de la columna.

Cuando reduce la granularidad o realiza cambios en el modelo de datos en una columna, está introduciendo un nuevo orden de clasificación en Analysis Services. Esto puede aumentar o disminuir el tamaño del modelo de datos.
Incluso si el número de valores distintos no cambiara, Analysis Services podría haber encontrado un orden de clasificación mejor que redujera el tamaño de la columna.
Esta técnica de optimización es especialmente útil si está almacenando una columna de fecha/hora. Esto podría almacenar valores hasta el milisegundo.
Cuando reduce la cardinalidad de cada valor a un segundo, esto reduce los valores únicos en el Diccionario.
Transformaciones simples de LuckyTemplates para obtener datos más optimizados
Optimice las fórmulas de LuckyTemplates con
el motor de almacenamiento DAX avanzado: su función en la optimización de las consultas DAX en LuckyTemplates
Conclusión
Si está trabajando con un modelo tabular, concéntrese en reducir la cardinalidad de una columna.
La cardinalidad es el factor decisivo en la cantidad de RAM que consumirá el modelo de datos. También le dice cuánto tiempo llevará escanear una columna en particular cuando ejecute su código.
La optimización de sus consultas DAX es crucial para mantener un buen informe de LuckyTemplates. No solo asegura que su trabajo funcione bien, sino que también reduce la tensión en su máquina.