#SQSummit
Column Index
Portillo ahias
@portilloAhias
jahias@solidq.com
DPA, SolidQ
MVP en plataforma de datos
Sponsors del SolidQ Summit Panamá
Agenda
• Introducción
• Evolución de Sql Server
• Xvelocity
• Columnstore vrs rowstore
• Columnstore
• Como Funcionan
• No Clustered
• Clustered
• Demo
2
0
1
6
|
o
e
s
H
e
r
e
3 |
The Evolution Of Microsoft Data Platform
Nuestros Querys
Nuestros Querys con Columnstore indexes
3rd Wave
End User BI
1st Wave
Technical BI
Sql Server xVelocity
xVelocity es la apuesta de Microsoft para el
almacenamiento y procesamiento de datos en
memoria.
• In-Memory OLTP
• Columnstore Index
Columnstore vrs Rowstore
Columnstore Rowstore
Los datos son agrupados y
almacenado en columnas
Los datos son agrupados y
almacenados en filas
La lectura se realiza en base a las
columnas que se necesita
La lectura se realiza por cada fila
del resultado
Compresión nativa Compresión manual
Procesamiento por Batch Procesamiento I/O
No llaves Llaves limitadas a 16 columnas
Particionamiento Particionamiento
ColumnStore Index
Column Store
Power Pivot
Analysis
Services
SQL Server
Non clustered
Index
SQL 2012+
Clustered
Index
SQL 2014+
¿Como funciona Columnstore index?
Nonclustered ColumnStore Index
• Puede combinarse con otros índices
• Puede decidir que columnas estarán dentro del índice
• Solo un índice por tabla
• Almacenamiento redundante
• Sin ordenamiento
• SQL Server 2012+
Nonclustered ColumnStore Index
• No se admite restricciones(unique)
• La tabla indexada es de solo lectura(2012,2014)
Clustered ColumnStore Index
• Almacenamiento físico columnar
• No hay redundancia de almacenamiento
• Todas las columnas incluidas automáticamente
• No se permiten mas índices
• Actualización
• Es compactible con mas tipos de datos
• Cambio entre procesamiento ROW-mode and BATCH-
mode permitido
• SQL Server 2014+
• Table consists of column store and row store
• DML (update, delete, insert) operations
leverage delta store
• INSERT Values
• Always lands into delta store
• DELETE
• Logical operation
• Data physically remove after REBUILD operation
is performed.
• UPDATE
• DELETE followed by INSERT.
• BULK INSERT
• if batch < 100k, inserts go into delta store,
otherwise columnstore
• SELECT
• Unifies data from Column and Row stores -
internal UNION operation.
• “Tuple mover” converts data into columnar
format once segment is full (1M of rows)
Actualización de Columnstore Index
Restricciones de Clustered ColumnStore Index
• No Constraints (unique, primary, foreign key)
• No Triggers
• No todos los tipos de datos soportado
• No ISOLATION LEVEL SNAPSHOT
• Enterprise Edition
Como crear un índice columnstore
Como crear un índice columnstore(2016)
Como crear un índice columnstore(2016)
Demo
Columnstore Index Feature
SQL Server
2012
SQL Server
2014
SQL Server
2016 (CTP2)
Azure SQL
Database
Batch execution for multi-threaded queries yes yes yes yes
Batch execution for single-threaded queries yes yes
Archival compression option. yes yes yes
Snapshot isolation and read-committed snapshot isolation yes yes
Specify columnstore index when creating a table. yes yes
AlwaysOn supports columnstore indexes. yes yes yes yes
AlwaysOn readable secondary supports read-only columnstore indexes. yes yes yes yes
AlwaysOn readable secondary supports updateable columnstore
indexes.
yes
Read-only nonclustered columnstore index on heap or btree. yes yes yes
1
yes
1
Updateable nonclustered columnstore index on heap or btree yes yes
Additional btree indexes allowed on a heap or btree that has a columnstore
index.
yes yes yes yes
Updateable clustered columnstore index. yes yes yes
Btree index on a clustered columnstore index. yes yes
Columnstore index on a memory-optimized
table.
Yes!
Nonclustered columnstore index definition supports using a filtered
condition.
yes yes
Sql Server 2016 Columnstore index
Preguntas????
También puedes preguntar tus
dudas con el hashtag
#SQSummit en Twitter
ADAPTIVE BI FRAMEWORK
Te ayudaremos a mejorar la velocidad de desarrollo de tu plataforma de
analítica de negocio basada en nuestra experiencia:
•Diseña antes de construir
•Automatización de procesos por ETL
•Servicios de mentoring para ayudarte a conseguir mejores prácticas para la construcción
de procesos específicos y plataformas de analítica de negocio
•Muy fácil de mantener
SOLIDQ FLEX SERVICES
Con SolidQ Flex Services evitarás sustos, consiguiendo que tus sistemas
sean estables. Desde una solución sencilla de monitorización, hasta un
servicio de atención de incidencias 24/7, mantenimiento proactivo,
resolución de problemas y línea de soporte.
Todo con un coste fijo mensual… y tú dedica el tiempo a las cosas
importantes.
¡Gracias!

Column stored index

  • 1.
  • 2.
    Sponsors del SolidQSummit Panamá
  • 3.
    Agenda • Introducción • Evoluciónde Sql Server • Xvelocity • Columnstore vrs rowstore • Columnstore • Como Funcionan • No Clustered • Clustered • Demo 2 0 1 6 | o e s H e r e 3 |
  • 4.
    The Evolution OfMicrosoft Data Platform
  • 5.
  • 6.
    Nuestros Querys conColumnstore indexes
  • 7.
    3rd Wave End UserBI 1st Wave Technical BI Sql Server xVelocity xVelocity es la apuesta de Microsoft para el almacenamiento y procesamiento de datos en memoria. • In-Memory OLTP • Columnstore Index
  • 8.
    Columnstore vrs Rowstore ColumnstoreRowstore Los datos son agrupados y almacenado en columnas Los datos son agrupados y almacenados en filas La lectura se realiza en base a las columnas que se necesita La lectura se realiza por cada fila del resultado Compresión nativa Compresión manual Procesamiento por Batch Procesamiento I/O No llaves Llaves limitadas a 16 columnas Particionamiento Particionamiento
  • 9.
    ColumnStore Index Column Store PowerPivot Analysis Services SQL Server Non clustered Index SQL 2012+ Clustered Index SQL 2014+
  • 10.
  • 11.
    Nonclustered ColumnStore Index •Puede combinarse con otros índices • Puede decidir que columnas estarán dentro del índice • Solo un índice por tabla • Almacenamiento redundante • Sin ordenamiento • SQL Server 2012+
  • 12.
    Nonclustered ColumnStore Index •No se admite restricciones(unique) • La tabla indexada es de solo lectura(2012,2014)
  • 13.
    Clustered ColumnStore Index •Almacenamiento físico columnar • No hay redundancia de almacenamiento • Todas las columnas incluidas automáticamente • No se permiten mas índices • Actualización • Es compactible con mas tipos de datos • Cambio entre procesamiento ROW-mode and BATCH- mode permitido • SQL Server 2014+
  • 14.
    • Table consistsof column store and row store • DML (update, delete, insert) operations leverage delta store • INSERT Values • Always lands into delta store • DELETE • Logical operation • Data physically remove after REBUILD operation is performed. • UPDATE • DELETE followed by INSERT. • BULK INSERT • if batch < 100k, inserts go into delta store, otherwise columnstore • SELECT • Unifies data from Column and Row stores - internal UNION operation. • “Tuple mover” converts data into columnar format once segment is full (1M of rows) Actualización de Columnstore Index
  • 15.
    Restricciones de ClusteredColumnStore Index • No Constraints (unique, primary, foreign key) • No Triggers • No todos los tipos de datos soportado • No ISOLATION LEVEL SNAPSHOT • Enterprise Edition
  • 16.
    Como crear uníndice columnstore
  • 17.
    Como crear uníndice columnstore(2016)
  • 18.
    Como crear uníndice columnstore(2016)
  • 19.
  • 20.
    Columnstore Index Feature SQLServer 2012 SQL Server 2014 SQL Server 2016 (CTP2) Azure SQL Database Batch execution for multi-threaded queries yes yes yes yes Batch execution for single-threaded queries yes yes Archival compression option. yes yes yes Snapshot isolation and read-committed snapshot isolation yes yes Specify columnstore index when creating a table. yes yes AlwaysOn supports columnstore indexes. yes yes yes yes AlwaysOn readable secondary supports read-only columnstore indexes. yes yes yes yes AlwaysOn readable secondary supports updateable columnstore indexes. yes Read-only nonclustered columnstore index on heap or btree. yes yes yes 1 yes 1 Updateable nonclustered columnstore index on heap or btree yes yes Additional btree indexes allowed on a heap or btree that has a columnstore index. yes yes yes yes Updateable clustered columnstore index. yes yes yes Btree index on a clustered columnstore index. yes yes Columnstore index on a memory-optimized table. Yes! Nonclustered columnstore index definition supports using a filtered condition. yes yes Sql Server 2016 Columnstore index
  • 21.
  • 22.
    También puedes preguntartus dudas con el hashtag #SQSummit en Twitter ADAPTIVE BI FRAMEWORK Te ayudaremos a mejorar la velocidad de desarrollo de tu plataforma de analítica de negocio basada en nuestra experiencia: •Diseña antes de construir •Automatización de procesos por ETL •Servicios de mentoring para ayudarte a conseguir mejores prácticas para la construcción de procesos específicos y plataformas de analítica de negocio •Muy fácil de mantener SOLIDQ FLEX SERVICES Con SolidQ Flex Services evitarás sustos, consiguiendo que tus sistemas sean estables. Desde una solución sencilla de monitorización, hasta un servicio de atención de incidencias 24/7, mantenimiento proactivo, resolución de problemas y línea de soporte. Todo con un coste fijo mensual… y tú dedica el tiempo a las cosas importantes. ¡Gracias!