DENALI: Escalabilidad y Rendimiento

357 views

Published on

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

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
357
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

DENALI: Escalabilidad y Rendimiento

  1. 1. REL-318SQL11 Denali: Escalabilidad yrendimientoEnrique Catalá BañulsMentor – Área relacionalMCT – MCTS – MCITP – MAP 2010ecatala@solidq.com
  2. 2. Escalabilidad y rendimiento
  3. 3. Objetivos de la sesiónAgendaα Escalabilidadα Columnar storageα Agregados con ventana deslizanteα Paginación eficienteα Secuenciasα Mejoras en iFTSα Optimización en tipos de datos espaciales
  4. 4. AlwaysOnVisto 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. 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. 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
  7. 7. Columnstore index
  8. 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. 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. 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. 11. Mezcla de detalle y cálculosde conjuntosα Las consultas agrupadas imponen condiciones
  12. 12. Piensa en conjuntosα Subconsultas β Demasiada información β Cuidado con el orden de evaluación β Cada consulta necesita su resolución independiente
  13. 13. Piensa en conjuntosComplejidadα El pensamiento tradicional produce consultas muy complejas
  14. 14. Piensa en conjuntosRendimientoα Consultas de complejidad cuadrática
  15. 15. Novedad DenaliNuevas construcciones basadas en conjuntos α Particionamos α Ordenamos α Deslizamos
  16. 16. Cambia tu mentePiensa 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
  17. 17. Abre tu mente 
  18. 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. 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. 20. PAGINACIONAntes 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. 21. Paginación en DenaliClá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
  22. 22. PaginaciónCláusula OFFSET/FETCHα Clara y concisa
  23. 23. Paginación 10 mins
  24. 24. SecuenciasIntroduccionα 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. 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. 26. SecuenciasVs 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. 27. SecuenciasRendimiento 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
  28. 28. SecuenciasRendimiento contra Identity (II)α Se puede obtener un aumento muy alto utilizando sp_sequence_get_range
  29. 29. Secuencias
  30. 30. Full Text SearchMejoras 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 ondb_X.svceventinfo(file_stream)
  31. 31. Full Text SearchMotorα 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. 32. SpatialMejoras 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. 33. SpatialMá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. 34. Objetivos de la sesiónAgendaα Escalabilidadα Columnar storageα Agregados con ventana deslizanteα Paginación eficienteα Secuenciasα Mejoras en iFTSα Optimización en tipos de datos espaciales
  35. 35. Si quieres disfrutar de las mejores sesiones denuestros mentores de España y Latino América, ésta es tu oportunidad. http://summit.solidq.com/madrid/

×