Freigeben über


Analysis Services Tabular Mode vs Multidimensional Mode

Una nueva característica en SQL Server 2012 son los modelos tabulares de Analysis Services, y después de toparme con algunas sorpresas al preparar una demo para un evento reciente decidí terminar unas pruebas y comparar el performance de los modelos tabulares vs los modelos multidimensionales.

Antes que nada, ¿Qué es Analysis Services Tabular Mode?. SQL Server incluye no solo el motor relacional sino que también incluye un motor analítico. Antes de SQL Server 2012, había solo una clase de base de datos analítica en SQL Server (las bases de datos multidimensional o simplemente cubos). En SQL Server 2012 tenemos una nueva clase de base de datos analítica, Analysis Services en modo tabular, el objetivo es similar a las bases de datos multidimensionales, ser capaz de responder preguntas complejas acerca de la información (queries) tan rápido como sea posible, sin embargo, la arquitectura y lenguaje usados varían. En bases de datos tabulares el lenguaje utilizado es DAX en lugar de MDX y la arquitectura de modo tabular está basada en tener toda la información comprimida en memoria organizada en modo tabular a diferencia de las base de datos multidimensionales que organizan la información en registros y utilizan agregaciones para mejorar el performance de los queries. El modo Tabular no requiere índices ni agregaciones gracias a ésta nueva arquitectura. Para más detalles del modo tabular pueden leer la presentación relacionada con el tema que pueden encontrar en https://blogs.technet.com/b/sql_pfe_latam/archive/2012/06/27/1-176-simposio-latinoamericano-de-sql-server.aspx

En éste escenario, los datos usados son aleatorios y el equipo es un Workstation con 16Gb de RAM (no precisamente un High End Server), sin embargo sirve para ilustrar que hay que tener cuidado antes de escoger tabular mode sin hacer las pruebas de concepto apropiadas.

Tabular mode tiene algunas ventajas sobre modelos multidimensionales pero también tiene algunas desventajas.

Tres de las ventajas más grandes de los modelos tabulares son:

-          Son más fáciles y rápidos de crear

-          Si ya tienes proyectos en PowerPivot es muy fácil evolucionarlos a TabularMode

-          Puedes usar PowerView para consumir éstos modelos

Dentro de las desventajas se encuentran los resultados de las pruebas que hice y que muestro a continuación.

El escenario consiste de una base de datos de 16.4 GB con una tabla de hechos con 100 millones de registros que tiene menos de 10 columnas. El comparativo al cargar ésta información tanto a Tabular Mode como a multidimensional se muestra a continuación:

Característica

Tabular

Multidimensional

Procesamiento

Más de 9 horas

20 minutos

Consumo de memoria

11 GB

1 GB

Tamaño aprox. BD

4.5 GB

8.4 GB

Query 1

88 ms

94 ms

Query 2

334 ms

62 ms

Query 3

5033 ms

920 ms

Los resultados anteriores no significa que no deben usar Tabular Mode, pero si que deben hacer una evaluación antes de tomar una decisión, dependiendo del conjunto de datos, de la cantidad de dimensiones, de la complejidad de las métricas, etc, los resultados van a beneficiar más a un modelo que al otro.

Aquí muestro los print screens que reflejan los datos anteriores.

Tamaño base de datos relacional (no se usó compresión)


Tamaño de base de datos modo Tabular

Tamaño de Base de datos en modo multidimensional

Queries en modo tabular

 

Queries en modo multidimensional

Comments

  • Anonymous
    January 01, 2003
    Asi es Amigo, Gracias por sus comentarios.

  • Anonymous
    January 01, 2003
    Sí, para ambientes grandes, normalmente, multidimensional models se comportarán mejor. Para ambientes medianos o que vienen de PowerPivot, tabular es el primero que conviene probar. Los resultados van a depender mucho de los datos, si son muy compresibles tabular dará buenos resultados si no, dará malos resultados. Esto puede cambiar en versiones futuras. Éstos comentarios aplican a la versión actual, SQL 2012.

  • Anonymous
    January 01, 2003
    Se contempló el hardware que se utilizó al momento de definir el tamaño del dataset, el requerimiento es que la información quepa en memoria, en algunos casos eso significa 64GB de RAM en otros significa 2TB, en mi caso 16GB son más que suficientes. Un servidor tiene mayor poder de procesamiento, y eso hará una pequeña diferencia porque tabular usa más procesador, pero la diferencia no será tan grande. La información almacenada (facilidad de compresión) jugará un papel mucho más importante con respecto al comparativo de performance entre multidimensional y tabular. Estoy trabajando en generar un dataset que tome ventaja del poder de los modelos tabulares y publicaré los resultados.

  • Anonymous
    February 25, 2013
    No me queda claro, en definitiva habría que probar siempre los 2 modos y ver cual es mejor?

  • Anonymous
    April 17, 2013
    No se sí tus pruebas son válidas dado que el hardware tiene que ser totalmente diferente para Tabular que para Multidimensional. Tabular requiere 64 Gb  de Ram. El concepto es muy diferente y es muy hardware dependiente.

  • Anonymous
    August 14, 2013
    Ya no se concluyeron tus pruebas?, que es mejor?