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)
3. Objetivos de la sesión
Agenda
α Escalabilidad
α Columnar storage
α Agregados con ventana deslizante
α Paginación eficiente
α Secuencias
α Mejoras en iFTS
α Optimización en tipos de datos espaciales
4. AlwaysOn
Visto en la sesión: REL-316: Denali: Alta Disponibilidad
α 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
5. Columnar indexes
α 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
6. 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
8. Columnstore indexes
α 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
9. Calculos sobre conjuntos
α 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
10. Piensa en conjuntos
α No te desvies de la realidad, SQL Server es un motor
relacional basado en conjuntos
α ¿Entiendes realmente lo que significa conjunto?
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
11. Mezcla de detalle y cálculos
de conjuntos
α Las consultas agrupadas
imponen condiciones
12. Piensa en conjuntos
α Subconsultas
β Demasiada información
β Cuidado con el orden
de evaluación
β Cada consulta necesita
su resolución
independiente
16. 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
α Conceptualmente, una ventana deslizante existe
simultáneamente respecto a cada fila. Debes preparar tu
mente para empezar a dar soluciones eficaces
18. Nuevas funciones de agregado
α 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,…
19. PAGINACION
¿Por qué paginar?
α “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.”
20. PAGINACION
Antes de SQL11
α 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
21. Paginación en Denali
Cláusulas OFFSET/FETCH
α 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
24. Secuencias
Introduccion
α 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
25. Secuencias
¿Por qué?
α 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
26. 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
Yes in INSERT SELECT
Effected by rollback No No
Can associate/disassociate with an No Yes
existing column
Can define minimum and maximum No Yes
values
Can cycle No Yes
Can change increment No Yes
Supports defining caching No Yes
Obtain range of values No Yes
27. Secuencias
Rendimiento contra identity
α 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
30. Full Text Search
Mejoras en iFTS
α 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
α 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)
31. Full Text Search
Motor
α 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
32. Spatial
Mejoras en indexación
α 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
33. Spatial
Más novedades
α 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
SELECT GEOGRAPHY::UnionAggregate(geog) FROM Regions
α Ya es posible superar el valor de hemisferio lógico
34. Objetivos de la sesión
Agenda
α Escalabilidad
α Columnar storage
α Agregados con ventana deslizante
α Paginación eficiente
α Secuencias
α Mejoras en iFTS
α Optimización en tipos de datos espaciales
35. 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/