SAP HANA soporta el almacenamiento basado en columnas (column-based storage) y basado en filas (row-based storage), y funciona mejor con el almacenamiento basado en columnas, las tablas de este tipo tienen una lectura optimizada y mejores niveles de compresión. En el futuro, algunas características como el particionado sólo estarán disponibles en tablas column-based storage.
Pero no siempre es recomendable utilizar tablas basadas en columnas, las cuales están pensadas, principalmente, para grandes volúmenes de datos con lecturas y modificaciones masivas, por otro lado, las tablas basadas en filas son más eficientes en tareas de inserción y actualización, principalmente para pequeños conjuntos de datos con modificaciones individuales. A continuación mencionamos algunos aspectos que podrían determinar el uso de uno u otro tipo de almacenamiento:
Column Store:
- Los cálculos serán ejecutados sobre una o pequeños grupos de columnas.
- La tabla tendrá varias columnas.
- Gran número de filas que serán procesadas constantemente a nivel de columnas.
- Las columnas tienen poca variedad de valores y se logrará un alto nivel de compresión.
- Búsquedas a nivel de los valores de algunas columnas.
Row Store:
- Se necesita procesar un registro a la vez.
- Se requiere acceder a todo el registro (todas las columnas de una fila)
- Las columnas tienen una amplia variedad de datos y los niveles de compresión serían bajos.
- No se requiere agregaciones, ni búsquedas rápidas
- La tabla tendrá un número reducido de filas (por ejemplo tablas de configuración)
Nota: Las tablas de diferente tipo de almacenamiento pueden vincularse, pero resulta más recomendable que siempre sean del mismo tipo. El tipo de almacenamiento asignado a una tabla en su definición puede modificarse vía la sentencia ALTER TABLE ALTER TYPE.