indices columnares en sql server 2014

25
Índices Columnares en SQL Server 2014 1 de Octubre (12 pm GMT - 5) José L. Rivera Resúmen: Los índices columnares, disponibles desde SQL Server 2012, prometen ser una herramienta fundamental para obtener alto rendimientos en consultas de altos volúmenes de datos. Estos índices introducen un nuevo paradigma de construcción y uso el cual estaremos discutiendo en esta sesión. Veremos sus características principales y como tomar ventaja de Próximos Eventos Introducción a SSIS con BIML 15 de Octubre Guillermo Caicedo Creando Reportes personalizados en ERP - MS Dynamics AX 2012 y SQL Server 2012 22 de Octubre Juan Manuel Rafael Fabián Power BI para office 365 8 de Octubre Jorge Castañeda Está por comenzar:

Upload: spanishpassvc

Post on 12-Dec-2014

187 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Indices Columnares en SQL Server 2014

Índices Columnares en SQL Server 2014

1 de Octubre (12 pm GMT -5)

José L. RiveraResúmen:Los índices columnares, disponibles desde SQL Server 2012, prometen ser una herramienta fundamental para obtener alto rendimientos en consultas de altos volúmenes de datos. Estos índices introducen un nuevo paradigma de construcción y uso el cual estaremos discutiendo en esta sesión. Veremos sus características principales y como tomar ventaja de los mismos en nuestros entornos laborales.

Próximos Eventos

Introducción a SSIS con BIML

15 de OctubreGuillermo Caicedo

Creando Reportes personalizados en ERP - MS Dynamics AX 2012 y SQL Server 2012 22 de Octubre

Juan Manuel Rafael Fabián

Power BI para office 365

8 de OctubreJorge Castañeda

Está por comenzar:

Page 2: Indices Columnares en SQL Server 2014

Registro inicia a finales de Octubre

Page 3: Indices Columnares en SQL Server 2014

Índices Columnares en SQL Server 201410 de Septiembre de 2014

Jose L. RiveraMVP | MCITP | MCTS | MCSABI Consultant, Nagnoi LLCPASS Global Spanish VC | PRPASS

Page 4: Indices Columnares en SQL Server 2014

Jose L. Rivera es un experimentado profesional de bases de datos y analíticos, SQL Server MVP, expositor, líder de comunidades técnicas y Consultor para la firma Nagnoi, LLC. Jose L comparte sus conocimientos y experiencias en su blog (sqlconqueror.com) y a través de todo la comunidad PASS como líder del Capitulo Global en Español (facebook.com/SpanishPASSVC) y VP de PRPASS. Además, se desempeña como expositor frecuente en eventos de SQL Saturday a través de los Estados Unidos y Latinoamérica.

Twitter @SQLConqueror

LinkedIn /in/SQLConqueror

FaceBook /SQLConqueror

Blog http://sqlconqueror.com

José L. RiveraChapter Leader

PASS Global Spanish VC

Page 5: Indices Columnares en SQL Server 2014

Agenda

• Índices Columnares en SQL Server 2012 • Características generales• Arquitectura• Capacidades

• SQL 2012 vs SQL 2014

• Implementación

• Q&A

Page 6: Indices Columnares en SQL Server 2014

Índices en SQL Server

• Almacenamiento fila a fila

• Clustered• B-Tree• La data es almacenada de manera

ordenada• Solo 1 por tabla

• Non_Clustered• B-Tree• Es una estructura separada de la data.

Contiene un puntero a la data (row locator)• No hay orden especifico de la data• Columnas incluidas (included columns)

Almacenamiento columnar

• Non_Clustered (SQL Server 2012)• Solo lectura (Read Only) • Procesamiento batch (Batch Mode) - MAXDOP• limitaciones en tipos de datos

• Clustered (SQL Server 2014)• Actualizable• Mejoras en rendimientos

Tradicionales Columnares (Columnstore)

Page 7: Indices Columnares en SQL Server 2014

Índices Columnares (Columnstore Index)

• Basado en tecnología in-memory• usa Vertipaq/xVelocity – (PowerPivot, PowerView, SSAS Tabular)

• Diseñado para optimizar acceso a altos volúmenes de datos• Data Warehouse• Consultas de agregaciones de muchos datos

• Alternativa a otros enfoques para mejorar rendimiento• Vistas Indexadas• Compresión de datos• Tablas Particionadas (Partition views)

Page 8: Indices Columnares en SQL Server 2014

Max Degree of Parallelism (MAXDOP)

MAXDOP = 1

MAXDOP > 1

http://www.sqlskills.com/blogs/joe/row-and-batch-execution-modes-and-columnstore-indexes/

Page 9: Indices Columnares en SQL Server 2014

Carga de datos (Nonclustered Columnstore)

Page 10: Indices Columnares en SQL Server 2014

Ejemplo: Tabla base

OrderDateKey

ProductKey

StoreKey

RegionKey

Quantity

SalesAmount

20101107 106 01 1 6 30.00

20101107 103 04 2 1 17.00

20101107 109 04 2 2 20.00

20101107 103 03 2 1 17.00

20101107 106 05 3 4 20.00

20101108 106 02 1 5 25.00

20101108 102 02 1 1 14.00

20101108 106 03 2 5 25.00

20101108 109 01 1 1 10.00

20101109 106 04 2 4 20.00

20101109 106 04 2 5 25.00

20101109 103 01 1 1 17.00

Page 11: Indices Columnares en SQL Server 2014

Ejemplo: Creación de los GruposOrderDateKey

ProductKey

StoreKey

RegionKey

Quantity

SalesAmount

20101107 106 01 1 6 30.00

20101107 103 04 2 1 17.00

20101107 109 04 2 2 20.00

20101107 103 03 2 1 17.00

20101107 106 05 3 4 20.00

20101108 106 02 1 5 25.00

OrderDateKey

ProductKey

StoreKey

RegionKey

Quantity

SalesAmount

20101108 102 02 1 1 14.00

20101108 106 03 2 5 25.00

20101108 109 01 1 1 10.00

20101109 106 04 2 4 20.00

20101109 106 04 2 5 25.00

20101109 103 01 1 1 17.00

Page 12: Indices Columnares en SQL Server 2014

Ejemplo: Creación de los Segmentos

OrderDateKey

20101107

20101107

20101107

20101107

20101107

20101108

ProductKey

106

103

109

103

106

106

StoreKey

01

04

04

03

05

02

RegionKey

1

2

2

2

3

1

Quantity

6

1

2

1

4

5

SalesAmount

30.00

17.00

20.00

17.00

20.00

25.00OrderDateKey

20101108

20101108

20101108

20101109

20101109

20101109

ProductKey

102

106

109

106

106

103

StoreKey

02

03

01

04

04

01

RegionKey

1

2

1

2

2

1

Quantity

1

5

1

4

5

1

SalesAmount

14.00

25.00

10.00

20.00

25.00

17.0012

Page 13: Indices Columnares en SQL Server 2014

Ejemplo: Compresión

OrderDateKey

20101107

20101108

ProductKey

106

103

109

StoreKey

01

04

03

05

02

RegionKey

1

2

3

Quantity

6

1

2

4

5

SalesAmount

30.00

17.00

20.00

25.00

OrderDateKey

20101108

20101109

ProductKey

102

106

109

103

StoreKey

02

03

01

04

RegionKey

1

2

Quantity

1

5

4

SalesAmount

14.00

25.00

10.00

20.00

17.0013

Page 14: Indices Columnares en SQL Server 2014

Ejemplo: Selección Precisa

OrderDateKey

20101107

20101108

ProductKey

106

103

109

StoreKey

01

04

03

05

02

RegionKey

1

2

3

Quantity

6

1

2

4

5

SalesAmount

30.00

17.00

20.00

25.00

OrderDateKey

20101108

20101109

ProductKey

102

106

109

103

StoreKey

02

03

01

04

RegionKey

1

2

Quantity

1

5

4

SalesAmount

14.00

25.00

10.00

20.00

17.0014

Page 15: Indices Columnares en SQL Server 2014

Carga de datos (Clustered Columnstore)

Page 16: Indices Columnares en SQL Server 2014

Tuple Mover

• Este es un proceso interno que mueve los grupos acumulados en el deltastore a el columnstore• Tamaño del grupo: 1,048,576

• Si todos los deltastore están bloqueados, SQL Sever creara uno nuevo

• sys.column_store_row_groups• Se puede observar los deltastore• Estado: INVISIBLE, OPEN, CLOSED,

COMPRESSED

Page 17: Indices Columnares en SQL Server 2014

SQL Server 2012 vs SQL Server 2014

• Solo Non_Clustered• Procesamiento batch - MAXDOP

• Solo lectura (Read Only)• Drop• Tabla Particionada y hacer switch• Dos tablas combinadas por UNION ALL

• limitaciones en tipos de datos• binary, varbinary, ntext, text, image• varchar(max), nvarchar(max)• uniqueidentifier, rowversion,

timestamp• Decimal/numeric con precisión > 18• sql_variant, CLR, XML

• Se añade Clustered

• Lectura y Escritura

• Mejoras en rendimientos

• Mas tipos de datos apoyados

SQL Server 2012 SQL Server 2014

Page 18: Indices Columnares en SQL Server 2014

Comparación de Almacenamiento Físico

0.0

5.0

10.0

15.0

20.019.7GB

10.9GB

5.0GB4.0GB

6.9GB

1.8GB

Page 19: Indices Columnares en SQL Server 2014

DEMO

Page 21: Indices Columnares en SQL Server 2014

Manténgase conectado a nosotros!

Visítenos en http://globalspanish.sqlpass.org

/SpanishPASSVC

lnkd.in/dtYBzev

/user/SpanishPASSVC

/SpanishPASSVC

Page 22: Indices Columnares en SQL Server 2014

Planning on attending PASS Summit 2014? Start saving today!

• The world’s largest gathering of SQL Server & BI professionals

• Take your SQL Server skills to the next level by learning from the world’s SQL Server experts, in 190+ technical sessions

• Over 5000 attendees, representing 2000 companies, from 52 countries, ready to network & learn

$2,095UNTIL OCTOBER 31,

2014

Page 23: Indices Columnares en SQL Server 2014

Outstanding Volunteer Award

Do you know a volunteer that has gone above and beyond recently?

Nominate them for the monthly OVA.

[email protected]

Volunteering with PASS

PASSion Award

The highest of PASS accolades presented yearly to a volunteer.

Page 24: Indices Columnares en SQL Server 2014

Stay Involved!• Sign up for a free membership today at sqlpass.org

• Linked In: http://www.sqlpass.org/linkedin• Facebook: http://www.sqlpass.org/facebook• Twitter: @SQLPASS• PASS: http://www.sqlpass.org

Page 25: Indices Columnares en SQL Server 2014

Power BI para office 365

8 de Octubre (12 pm GMT -5)

Jorge CastañedaResúmen:El servicio de inteligencia de negocio basado en la nube que ofrece una nueva y poderosa manera de trabajar con datos se puede implementar fácilmente un entorno de BI en la nube donde la gente puede compartir información, colaborar y acceder a informes, desde cualquier lugar.

Próximo Evento