Una consulta frecuente es: ¿Cómo aceleramos la respuesta a las consultas hechas a un cubo de información sin recurrir al aumento de hardware? Para ello debemos conocer que un cubo de información es capaz de almacenar dos tipos de datos: detallados y resumidos, este segundo tipo de dato es el que nos va a permitir acelerar las respuestas a las consultas OLAP (On Line Analytical Processing ó Procesamiento Analítico en Línea)
En Analysis Services estos datos resumidos son llamados Agregaciones, que son estructuras que contienen datos sumarizados, pre-calculados listos para dar respuestas rápidas a las solicitudes de información. En esta nueva versión de SQL Server 2008 R2, se ha añadido una nueva pestaña en el Cube Editor, exclusivamente para la creación de agregaciones.
Pasemos a revisar cómo se construyen estos datos resumidos:
En la siguiente imagen se muestra la pantalla de agregaciones y como podemos ver, por defecto nuestros cubos tienen 0 agregaciones. Nada eficiente en realidad, ya que siempre se realizará un barrido completo del cubo (Cube Scan).
Procedamos a crear las agregaciones para este cubo. Damos clic derecho sobre el grupo de medidas Fact Reseller Sales y seleccionamos la opción Desing Aggregations:
Le damos Next a la pantalla de bienvenida:
Luego se muestra la pantalla de Dimensiones y Atributos que formaran parte de las agregaciones. Dejamos los valores por default, y le damos Next:
La siguiente pantalla nos permitirá calcular la cantidad de datos a nivel de dimensión y celda de los cubos. Para crear posteriormente las agregaciones, le damos clic en el botón Count y luego Next:
En la siguiente pantalla configuramos las opciones de agregaciones. Esta puede ser por almacenamiento en disco o por porcentaje de desempeño. Con un 30% de porcentaje de desempeño es suficiente para lograr nuestro objetivo de acelerar nuestro cubo de información. Luego le damos clic en el botón Start y Next:
Como se puede observar, se han creado 13 agregaciones, ocupando un espacio de 689.7 Kb, con una optimización de 31%:
A continuación le damos un nombre a la agregación y le damos clic en Finish:
Como último paso desplegamos (Deploy) el proyecto para reflejar las agregaciones en el cubo:
Nuestro objetivo finalmente, de acelerar las consultas en nuestro cubo de información, ha sido alcanzado con estos pocos pasos.
Nos vemos hasta el siguiente post.
Nicolás
Recursos:
Base de Datos de Ejemplo:
http://msftdbprodsamples.codeplex.com/releases/view/55926
Fuentes del Proyecto: