Este tutorial tratará sobre el motor de almacenamiento y GroupBy implícito en LuckyTemplates. Aprenderá lo que sucede detrás del rendimiento y verá posibles cuellos de botella. Esto le permitirá crear ideas y estrategias para mitigar esos problemas y lograr un rendimiento DAX más rápido.
Las consultas del motor de almacenamiento se expresan en un lenguaje llamado xmSQL. No es un lenguaje de programación real sino una representación visual de lo que está haciendo el motor de almacenamiento. Permite a los usuarios ver qué está haciendo el cálculo en segundo plano cuando se ejecutan varias consultas.
Tabla de contenido
GroupBy implícito en LuckyTemplates
Lo primero que debe observar es el GroupBy implícito que se encuentra en cada xmSQL.
Esta es una consulta de muestra que tiene la función EVALUATE y VALUES:
![GroupBy en LuckyTemplates: una función implícita en VertiPaq GroupBy en LuckyTemplates: una función implícita en VertiPaq](/resources8/uc1/image-267-0612125752295.jpg)
La consulta obtiene todos los valores del año de la tabla DimCalendar. Puede ver que devolvió 10 filas de datos.
![GroupBy en LuckyTemplates: una función implícita en VertiPaq GroupBy en LuckyTemplates: una función implícita en VertiPaq](/resources8/uc1/image-4510-0612125752977.jpg)
El proceso se muestra en la instrucción SQL donde la consulta selecciona el año calendario de DimCalendar y luego lo agrupa por año. La declaración implicaba una función GroupBy en el cálculo porque no hay nada más en la consulta. GroupBy implícito es más evidente cuando usa agregaciones.
Agregaciones dentro del motor de almacenamiento
Para tener una idea de lo que es la agregación, vaya a DAX Studio y active los tiempos del servidor y el plan de consulta. A continuación, ejecute esta medida de muestra:
![GroupBy en LuckyTemplates: una función implícita en VertiPaq GroupBy en LuckyTemplates: una función implícita en VertiPaq](/resources8/uc1/image-1725-0612125756255.jpg)
Después de ejecutar la consulta, puede ver que, a diferencia de la consulta de muestra anterior que tiene un escaneo, esta medida tiene dos. Esto se debe a que la primera muestra solo tiene los valores de DimCalendar Year. Esta consulta de muestra tiene el año calendario y una agregación.
![GroupBy en LuckyTemplates: una función implícita en VertiPaq GroupBy en LuckyTemplates: una función implícita en VertiPaq](/resources8/uc1/image-2697-0612125759685.jpg)
El primer escaneo es la consulta real.
![GroupBy en LuckyTemplates: una función implícita en VertiPaq GroupBy en LuckyTemplates: una función implícita en VertiPaq](/resources8/uc1/image-1014-0612125802730.jpg)
Selecciona el año DimCalendar y suma la cantidad de ventas de la tabla de datos de ventas, que sigue las relaciones del modelo de datos.
![GroupBy en LuckyTemplates: una función implícita en VertiPaq GroupBy en LuckyTemplates: una función implícita en VertiPaq](/resources8/uc1/image-9855-0612125807081.jpg)
En el modelo de datos, la tabla DimCalendar sigue a la columna Fecha de compra de la tabla Hecho hasta la columna Fecha de la tabla Calendario.
El segundo escaneo asegura que se tengan en cuenta todos los valores faltantes.
Puede ver en los resultados que el monto de Ventas solo aparece de 2015 a 2018. Sin embargo, aún muestra los años 2012 a 2014, incluso si están en blanco.
![GroupBy en LuckyTemplates: una función implícita en VertiPaq GroupBy en LuckyTemplates: una función implícita en VertiPaq](/resources8/uc1/image-929-0612125810506.jpg)
Conclusión
El motor de almacenamiento en DAX Studio le muestra todo el proceso detrás de un cálculo. Le permite monitorear cada función y ver posibles aciertos que pueden ralentizar el rendimiento de su DAX. Con dicha información, puede crear soluciones para mitigar posibles cuellos de botella en la ejecución de su código DAX.
Si su DAX funciona con lentitud, observe el motor de almacenamiento y descubra qué puede hacer para mejorar el rendimiento de su informe.
Motor de almacenamiento VertiPaq en un entorno de subprocesos múltiples
Compresión y almacenamiento VertiPaq en LuckyTemplates ¿
Qué es DAX Studio en LuckyTemplates Desktop?