DENALI: Escalabilidad y Rendimiento

Post on 07-Jul-2015

294 views 3 download

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

SQL11 Denali: Escalabilidad y rendimiento

Enrique Catalá Bañuls

REL-318

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

ecatala@solidq.com

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

α 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

α 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

α 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

Columnstore index

α 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

α 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

α 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

α Las consultas agrupadas imponen condiciones

Mezcla de detalle y cálculos de conjuntos

α Subconsultas β Demasiada información

β Cuidado con el orden de evaluación

β Cada consulta necesita su resolución independiente

Piensa en conjuntos

α El pensamiento tradicional produce consultas muy complejas

Piensa en conjuntos Complejidad

α Consultas de complejidad cuadrática

Piensa en conjuntos Rendimiento

α Particionamos

α Ordenamos

α Deslizamos

Novedad Denali Nuevas construcciones basadas en conjuntos

α 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

Abre tu mente

α 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

α “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?

α 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

α 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

α Clara y concisa

Paginación Cláusula OFFSET/FETCH

Paginación 10 mins

α 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

α 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é?

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

α 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

α Se puede obtener un aumento muy alto utilizando sp_sequence_get_range

Secuencias Rendimiento contra Identity (II)

Secuencias

α 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)

α 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

α 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

α 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

α 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

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/