DENALI: Escalabilidad y Rendimiento

35

Click here to load reader

description

Como novedad en España, vamos a hablar por primera vez de las nuevas capacidades en escalabilidad y rendimiento que vienen de la mano de la nueva versión de SQL Server 2011 (nombre en clave Denali)​

Transcript of DENALI: Escalabilidad y Rendimiento

Page 1: DENALI: Escalabilidad y Rendimiento

SQL11 Denali: Escalabilidad y rendimiento

Enrique Catalá Bañuls

REL-318

Mentor – Área relacional MCT – MCTS – MCITP – MAP 2010

[email protected]

Page 2: DENALI: Escalabilidad y Rendimiento

Escalabilidad y rendimiento

Page 3: DENALI: Escalabilidad y Rendimiento

α Escalabilidad

α Columnar storage

α Agregados con ventana deslizante

α Paginación eficiente

α Secuencias

α Mejoras en iFTS

α Optimización en tipos de datos espaciales

Objetivos de la sesión Agenda

Page 4: DENALI: Escalabilidad y Rendimiento

α Solución sencilla con poco mantenimiento y eficiente

α Clustering β Redirección de clientes automática

β Política de failover flexible

α Mirroring β Failover de grupos de bases de datos

β Síncrono/asíncrono

β Compresión y encriptación

β Réplicas de solo lectura Snapshot transparente

β Reparación de páginas automática

α Log Shipping β Múltiples secundarios: 4 secundarios, 2 síncronos, 1 failover

automático

AlwaysOn Visto en la sesión: REL-316: Denali: Alta Disponibilidad

Page 5: DENALI: Escalabilidad y Rendimiento

α Tipo de índice nonclustered nuevo β En un futuro podrá ser tambien tipo clustered…veremos si para

versión RTM

α Rendimientos de más de 100x y compresion entre 4x y 15x

α Optimización de consultas modelo estrella

α Surgen para escenarios tipo PDW donde se procesan cientos de Tb en menos de un segundo

α Basado en la tecnologia patentada Vertipaq que utilizan Analisys Services y PowerPivot

Columnar indexes

Page 6: DENALI: Escalabilidad y Rendimiento

α Altamente comprimible

α Procesa las columnas en bloques

α Buffer hit ratio mejorado Solo las columnas necesarios se leen

β Almacenamiento Puro

α Por ahora son el almacenamiento secundario

β En un futuro serán el almacenamiento primario de información

Columnar indexes

Page 7: DENALI: Escalabilidad y Rendimiento

Columnstore index

Page 8: DENALI: Escalabilidad y Rendimiento

α No se soporta actualización por ahora

α Para modificar datos se recomienda: β Crear tabla particionada con columnstore index alineado

β Deshabilitar columnstore

β Mover datos a la nueva tabla con una operación SWITCH

β Rebuild el índice

α Basan su beneficio en evitar leer de disco al optimizar la RAM mediante compresión y evitar leer información indeseada

α Equipos más asequibles producen rendimientos en entornos BI realmente espectaculares.

β Se puede pensar en soluciones ROLAP eliminando la necesidad de ETL con agregados pre-cargados

Columnstore indexes

Page 9: DENALI: Escalabilidad y Rendimiento

α Calculos aplicados a conjuntos de filas

α Resolución de problemas β Cursores

β Consultas agrupadas

β Subconsultas

β Joins

α Retos β Pensar en modo conjunto

β Mezclar cálculos de agrupado y el nivel detalle

β Complejidad

β Rendimiento

Calculos sobre conjuntos

Page 10: DENALI: Escalabilidad y Rendimiento

α No te desvies de la realidad, SQL Server es un motor relacional basado en conjuntos

α ¿Entiendes realmente lo que significa conjunto?

Piensa en conjuntos

Definición teórica por Georg Cantor:

1. Un conjunto es una reunión de objetos que cumplen con cierta

propiedad (llamados los elementos de ese conjunto) y que, por tanto,

queda definido por tal propiedad.

2. Un conjunto es una sola entidad matemática, de modo que puede a su

vez ser contenido por otro conjunto

3. Dos conjuntos que tengan los mismos elementos son iguales, luego un

conjunto queda determinado por sus elementos

En definitiva, una reunión de objetos sin ningún orden y con una propiedad

común

Page 11: DENALI: Escalabilidad y Rendimiento

α Las consultas agrupadas imponen condiciones

Mezcla de detalle y cálculos de conjuntos

Page 12: DENALI: Escalabilidad y Rendimiento

α Subconsultas β Demasiada información

β Cuidado con el orden de evaluación

β Cada consulta necesita su resolución independiente

Piensa en conjuntos

Page 13: DENALI: Escalabilidad y Rendimiento

α El pensamiento tradicional produce consultas muy complejas

Piensa en conjuntos Complejidad

Page 14: DENALI: Escalabilidad y Rendimiento

α Consultas de complejidad cuadrática

Piensa en conjuntos Rendimiento

Page 15: DENALI: Escalabilidad y Rendimiento

α Particionamos

α Ordenamos

α Deslizamos

Novedad Denali Nuevas construcciones basadas en conjuntos

Page 16: DENALI: Escalabilidad y Rendimiento

α Conceptualmente, una ventana deslizante existe simultáneamente respecto a cada fila. Debes preparar tu mente para empezar a dar soluciones eficaces

Cambia tu mente Piensa mas profundamente para dar con la clave

α Pensar en una asignación numérica aislada e independiente es erróneo aunque se obtenga el resultado deseado

Page 17: DENALI: Escalabilidad y Rendimiento

Abre tu mente

Page 18: DENALI: Escalabilidad y Rendimiento

α Agregados con ventana deslizante (Framing) β Hasta Denali, solo agregados con particionado

α Offset β LAG, LEAD,FIRST_VALUE, LAST_VALUE

α Distribución β PERCENT_RANK,PERCENTILE_CONT, PERCENTILE_DIST,…

Nuevas funciones de agregado

Page 19: DENALI: Escalabilidad y Rendimiento

α “ASYNC_NETWORK_IO”: “Occurs on network writes when the task is blocked behind the network. Verify that the client is processing data from the server.”

α “PAGEIOLATCH_SH: “Occurs when a task is waiting on a latch for a buffer that is in an I/O request. The latch request is in Shared mode. Long waits may indicate problems with the disk subsystem.”

PAGINACION ¿Por qué paginar?

Page 20: DENALI: Escalabilidad y Rendimiento

α Con SQL Server 2005 aparecieron las funciones de Ranking β Pudimos empezar a dar solución al problema de la paginación, con

algo de imaginación, eso si

PAGINACION Antes de SQL11

Page 21: DENALI: Escalabilidad y Rendimiento

α Sintaxis ANSI que puede servir a fines idénticos a TOP(n)

α Muchisima mas potente

α Filtro aplicado sobre la cláusula ORDER BY

α OFFSET indica cuantas filas hay que saltarse

α FETCH indica cuantas filas se deben devolver tras el OFFSET

α *Por ahora, mismo plan de ejecución

Paginación en Denali Cláusulas OFFSET/FETCH

Page 22: DENALI: Escalabilidad y Rendimiento

α Clara y concisa

Paginación Cláusula OFFSET/FETCH

Page 23: DENALI: Escalabilidad y Rendimiento

Paginación 10 mins

Page 24: DENALI: Escalabilidad y Rendimiento

α Una secuencia es un objeto usado para autogenerar números basados en criterios flexibles

α Es la evolución de IDENTITY

α Muy flexible y con posibilidad de optimizar su rendimiento

α Solo se soporta nombre de dos partes

α La equivalencia lógica con IDENTITY

Secuencias Introduccion

Page 25: DENALI: Escalabilidad y Rendimiento

α Sirven para crear valores de clave en inserciones β Permiten incluso almacenar dicho valor en variable

α NEXT VALUE FOR β Función para obtener el siguiente valor de la secuencia

α Sp_sequence_get_range β Obtiene un rango de valores de secuencia que mas tarde podremos

utilizar

Secuencias ¿Por qué?

Page 26: DENALI: Escalabilidad y Rendimiento

Secuencias Vs Identity

Option Identity Sequences

Obtain value before use No Yes

Table-Independent No Yes

Use in UPDATE No Yes

Used in SELECT No Yes

Control order Not in SELECT INTO

Yes in INSERT SELECT

Yes

Effected by rollback No No

Can associate/disassociate with an

existing column

No Yes

Can define minimum and maximum

values

No Yes

Can cycle No Yes

Can change increment No Yes

Supports defining caching No Yes

Obtain range of values No Yes

Page 27: DENALI: Escalabilidad y Rendimiento

α Se utiliza por defecto caché de 50 elementos

β Identity utiliza cacheo de 10

α Se puede modificar el cacheo e incluso deshabilitar

α Cuanto más caching, mas rendimiento

β No linear

α Posibilidad de huecos ante caidas

Secuencias Rendimiento contra identity

Page 28: DENALI: Escalabilidad y Rendimiento

α Se puede obtener un aumento muy alto utilizando sp_sequence_get_range

Secuencias Rendimiento contra Identity (II)

Page 29: DENALI: Escalabilidad y Rendimiento

Secuencias

Page 30: DENALI: Escalabilidad y Rendimiento

α Se puede utilizar IFilters como propiedades extendidas para hacer búsquedas en FTS

α Ahora por tanto, se puede buscar en las propiedades que exponen de forma óptima

Full Text Search Mejoras en iFTS

α Esto unido al FILETABLE storage…no os da la impresión de que WinFS está dando tufillo? :)

create fulltext index on

db_X.svceventinfo(file_stream)

Page 31: DENALI: Escalabilidad y Rendimiento

α Mejoras del motor entre 7-10x frente a SQL 2008 (Según internals de MS)

β Comparado con SQL 2005 más de 60x

α En el peor de los casos, tiempos de respuesta iFTS de <3ms

α Hasta 350M de documentos por almacenamiento

α Incremento de respuesta linear con el nº de CPU

Full Text Search Motor

Page 32: DENALI: Escalabilidad y Rendimiento

α Ahora hasta 8 Niveles por defecto β Antes 4

β Hasta 256 niveles (antes 32)

α GEOGRAPHY_AUTO_GRID y GEOMETRI_AUTO_GRID

α Soporte para objetos curvilíneos β CircularString

β CompoundCurve

β CurvePolygon

α Nuevos métodos adaptados β STCurveToLine()

β BufferWithCurves()

β …

α Mayor Precisión

Spatial Mejoras en indexación

Page 33: DENALI: Escalabilidad y Rendimiento

α Para mayor precisión, cláusula SPATIAL_WINDOW_MAX_CELL con posibilidad de llegar a 2048 celdas

α La mayoría de operadores y métodos se han optimizado

α Ya es posible realizar agregaciones β UnionAggregate

β EnvelopeAggregate

β CollectionAggregate

β ConvexHullAggregate

α Ya es posible superar el valor de hemisferio lógico

Spatial Más novedades

SELECT GEOGRAPHY::UnionAggregate(geog) FROM Regions

Page 34: DENALI: Escalabilidad y Rendimiento

α Escalabilidad

α Columnar storage

α Agregados con ventana deslizante

α Paginación eficiente

α Secuencias

α Mejoras en iFTS

α Optimización en tipos de datos espaciales

Objetivos de la sesión Agenda

Page 35: DENALI: Escalabilidad y Rendimiento

Si quieres disfrutar de las mejores sesiones de

nuestros mentores de España y Latino América,

ésta es tu oportunidad.

http://summit.solidq.com/madrid/