Successfully reported this slideshow.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Novedades sql server 2008 para developers

  1. 1. SQL Server 2008: Novedades para desarrolladores Enrique Catalá (ecatala@solidq.com) Solid Quality Mentors http://www.solidq.com http://blogs.solidq.com/es/elRinconDelDBA http://ecatalab.blogspot.com
  2. 2. Solid Quality Mentors • Son autores de la mayoría de los artículos de SQL Server Magazine • Dictan cientos de ponencias al año en conferencias alrededor del mundo • Han diseñado los cursos oficiales de SQL Server 2005 (Relacional y BI) • Han escrito casi un centenar de libros • Son la mayor comunidad de Microsoft MVPs del mundo con más de 50 de mentores
  3. 3. Data Compression Query Optimization Modes Resource Governor Transparent Data Encryption External Key Management Data Auditing Pluggable CPU Streamlined Installation Server Group Management Enterprise System Management Performance System Analysis Upgrade Advisor Partition Aligned Indexed Views Backup Compression Enterprise Data Platform Dynamic Development Beyond Relational Pervasive Insight SQL Server Conflict Detection Visual Studio Support Synchronized Programming model SQL Server Change Tracking Entity Data Model LINQ Visual Entity Designer Entity Aware Adapters SSB Priorities & Diagnostics CLR Improvement Performance Data Collection Extended Events Database Mirroring Enhancements ORDPATH Large User Defined Types DATE/TIME Data Types Improved XML Support Enterprise Reporting Engine AS Time Series VSTA Support for Script task Declarative Management Framework Table Valued Parameters Grouping Sets AS Scalable backup tools AS Dimension Design Star Join Query Optimization MERGE SQL Statement Change Data Capture (CDC) Virtual Earth Integration GEOGRAPHY data type GEOMETRY data type Sparse Columns Filtered Indexes Integrated Full Text Search FILESTREAM data type Enhanced Data Visualization Report Builder Enhancements Better rendering for Word & Excel Partitioned Table Parallelism AS Query Optimizations Data Mining Engine Improvements IIS Agnostic Report Deployments Best Practice Design Alerts Data Compression Resource Governor Persistent Lookups Scale-out AS Data Profiling AS Query & Writeback Perf
  4. 4. 4Solid Quality Mentors Agenda Desarrolladores • Mejoras T-SQL • Constructores de fila • Parámetros de tabla • Nuevos tipos de datos – Fechas – jerarquias – FILESTREAM – Espaciales • Sentencia MERGE • INSERT sobre DML • Agrupación de conjuntos (Grouping Sets) • Dependencias • Seguimiento de datos • Captura de datos modificados • Seguimiento de cambios • Auditoría • Consejos y bloqueos • Service Broker
  5. 5. Mejoras T-SQL • IntellisSense en el editor de consultas de Transact-SQL • Ventana de listado de errores • Mejoras en DECLARE • Operadores de asignación – +=, -=, *=, /=, %= • CONVERT – Estilos para datos hexadecimales • ALTER DATABASE para nivel de compatibilidad – En lugar del procedimiento del sistema sp_dbcmptlevel Mejoras generales 5Solid Quality Mentors
  6. 6. Constructores de fila • Nueva sintaxis para cláusula VALUE – Ahora devuelve una tabla relacional con múltiples filas • Uso con la sentencia INSERT – Para insertar múltiples filas como una operación atómica • Uso para definir una expresión de tabla virtual Constructores de fila 6Solid Quality Mentors
  7. 7. Parámetros de tabla • Escenarios • Actualización en lotes del servidor • Parámetros en lote para usar en consultas • Pasar una tabla entre rutinas • Migración de otras bases de datos – Los datos almacenados son tabulares! – Criterio común – Gran cantidad de datos pasados desde el cliente al servidor – Aplicación de lógica de negocio antes de actualizar datos de forma persistente – Ej. Data mining, sistemas de inventariado, herramientas ETL Motivación 7Solid Quality Mentors
  8. 8. Parámetros de tabla Introducción 8Solid Quality Mentors • Simplificando el escenario – Pasar tablas entre procedimiento, listas separada por comodín – Y migración de otros gestores – ¿Cómo se inserta CabPedido, y 3 LinPedido? • Soluciones actuales – Uso de arrays de parámetros, XML o blobs propietarios – Re-ensamblado de filas en el lado servidor • Lógica de programación compleja • Bajo rendimiento debido a múltiples viajes de ida y vuelta • Parámetros de tabla – Tipo de datos definidos por el usuario para datos tabulares – Paso de datos tabulares a • Procedimientos almacenados y funciones – Completo soporte desde el lado del cliente
  9. 9. Parámetros de tabla • Empaquetado de lógica de negocio – Mejor modelo de programación – Procesamos transacciones en orden de llegada – Mejor manejabilidad (procedimiento almacenado lo puede hacer todo) • Rendimiento – Reducción de idas y vueltas al servidor – Operaciones basadas en conjuntos – Transporte de datos eficiente Beneficios: 9Solid Quality Mentors
  10. 10. Parámetros de tabla Rendimiento: comparación con otras tecnologías 10 Data Source Server Logic # of Rows Bulk TVP File Direct Insert < 1000 X File Direct Insert > 1000 X File Complex < 1000 X File Complex > 1000 X Client Direct Insert < 1000 X Client Direct Insert > 1000 X Client Complex < 1000 X Client Complex > 1000 X File = entrada de un archivo de datos formateado en el servidor Client = la entrada proviene de un proceso remoto Direct Insert = una sentencia bulk insert singular Complex = lógica adicional que no se puede manejar desde una sentencia bulk insert singular Solid Quality Mentors
  11. 11. Demo 03 -Mejoras T-SQL -Constructores de filas -Parámetros de tabla 11Solid Quality Mentors
  12. 12. Mejoras en T-SQL Nuevos tipos de datos • Aplicaciones con una mejor gestión de fecha/hora gracias a nuevos tipos de datos de alta precisión: datetime2 precisión 10ns date solo fecha Time solo hora Datetimeoffset fecha-hora en UTC • Permite abordar problemas complejos con UDTs y UDAs más grandes
  13. 13. Tipos de datos espaciales • Algoritmos planares (tierra plana) y Geodésicos (globo terráqueo) • Visualización de datos espaciales con el Virtual Earth SDK • Intercambio de información espacial utilizando GML XML • Integra los datos espaciales con aplicaciones .NET • Optimiza el rendimiento utilizando índices espaciales • Soporte de los partners para los tipos de datos espaciales 47.6456, -122.12551
  14. 14. Tipos de datos espaciales • Almacena varios tipos: – Puntos – Cadenas lineales – Polígonos – Combinaciones de los anteriores • Funciones espaciales – Relaciones espaciales: intersecciones, tangencias, etc. – Construcciones espaciales: intersección, unión, etc.. – Métrica: distancia, área • Creación de una instancia: declare @g geography set @g = geography::Parse(‘POINT (47.6456 -122.12551)’) • Crear una tabla: create table T(id int, region geography) • Seleccionar datos: select * from T where region.STIntersects(@g) = 1 Soporta los estándares OGC Tipo de datos Geometry Tipo de Datos Geography Modo de uso
  15. 15. Datos no estructurados FileStream • Atributo de almacenamiento en VARBINARY(MAX) • Datos no estructurados guardados directamente en sistema de archivos NTFS • Modelo de programación dual: – T-SQL (como un BLOB SQL) – API de Streaming de Win32 Streaming APIs con semántica transaccional de T-SQL • Consistencia transaccional • Capacidad de gestión integrada – Backup/restore – Seguridad de SQL Server • Limitado al tamaño del volumen del sistema de archivos Guarda BLOBs en DB + File System Aplicación BLOB Base de Datos
  16. 16. HierarchyID • Hace fácil el guardar datos y preguntar por datos jerárquicos • Optimizado para representar árboles, que son la forma mas común de datos jerárquicos – Extremadamente compacto Propiedades clave 17© 2007 Solid Quality Mentors / /1 /2 /3 /1/1 /1/2 /1/1/1 /1/1/1/1 /3/1 /3/2
  17. 17. Mejoras en XML • Mejoras en la capacidad de validación de esquemas • Mejoras en el soporte de XQuery • Mejoras en la realización de inserciones DML (Data Manipulation Language) en XML • Soporte para validación lax • Soporte completo de validación dateTime, time y date , incluso preservando información sobre zona horaria • Mejorado el soporte para unión y listado de tipos • Soporte para la sentencia “LET” Puntos clave 18© 2007 Solid Quality Mentors
  18. 18. Sentencia Merge Introducción 19Solid Quality Mentors • Inserción o actualización OLTP (UPSERT) • Inserción o actualización en Data warehouse • Sincronización con fuente – insert/update/delete MERGE <target> USING (SELECT <expression> FROM <source>) <alias> ON <intersection> WHEN MATCHED THEN <UPDATE | DELETE> WHEN TARGET NOT MATCHED [AND <conditions>] THEN <INSERT> WHEN SOURCE NOT MATCHED [AND <conditions>] THEN <UPDATE | DELETE>
  19. 19. Demo 04 Sentencia MERGE 20Solid Quality Mentors
  20. 20. 26Solid Quality Mentors Agenda Desarrolladores • Mejoras T-SQL • Constructores de fila • Parámetros de tabla • Nuevos tipos de datos – Fechas – jerarquias – FILESTREAM – Espaciales • Sentencia MERGE • INSERT sobre DML • Agrupación de conjuntos (Grouping Sets) • Dependencias • Seguimiento de datos • Captura de datos modificados • Seguimiento de cambios • Auditoría • Consejos y bloqueos • Service Broker
  21. 21. INSERT sobre DML • Habilidad para tener – Sentencia INSERT que consuma resultados de un DML – Filtrado en la salida de un DML con una cláusula where • Mejora de la cláusula OUTPUT INTO <table> • ¿Por qué? – Historial de dimensiones lentamente cambiantes (lo veremos mas a fondo en la sesión de BI) – Vertido de secuencias de datos DML en una tabla secundaria para post-procesado Introducción 27Solid Quality Mentors
  22. 22. Demo 05 INSERT sobre DML 28Solid Quality Mentors
  23. 23. Agrupación de conjuntos • Definición: un conjunto de columnas agrupadas • Mejoras relativas a agrupación de conjuntos: – Nueva cláusula ISO en GROUP BY • GROUPING SETS, CUBE, ROLLUP – Nueva función GROUPING_ID • Identifica una asociación de agrupación de conjuntos • Nueva sub cláusula permite un mejor rendimiento con conjuntos de resultados lógicamente equivalentes de múltiples de consultas con GROUP BY Introducción 29Solid Quality Mentors
  24. 24. Demo 06 Agrupación de conjuntos 31Solid Quality Mentors
  25. 25. Dependencias de objetos Extensiones de catálogo 33 • Nueva vista de catálogo; reemplaza a sys.sql_dependencies • Realiza seguimiento tanto de las que poseen esquema, como las que no lo hacen • Realiza seguimiento entre bases de datos y entre servidores referenciados ( por nombre) sys.sql_expression_dependencies • Nueva función de administración dinámica; reemplaza sp_depends • Devuelve una fila para cada entidad referenciada por la entidad dada • Ej. Muéstrame todo los objetos referenciados por el PA sys.dm_sql_referencing_entities sys.dm_sql_referenced_entities • Devuelve una fila por cada entidad que referencie a la entidad dada • Ej. Muéstrame todos los objetos que se romperían si borro la tabla t1 Nueva función de administración dinámica; reemplaza sp_depends Solid Quality Mentors
  26. 26. Introducción al seguimiento de datos • ¿Por qué estamos realmente interesados en los cambios? • Conocer las especificaciones del cambio es muy valioso – Qué cambió – Cuándo se cambio – Cómo se cambió – Quién lo cambió Entendiendo el cambio 34Solid Quality Mentors
  27. 27. Introducción al seguimiento de datos • Provee interioridades a la raíz de las causas del problema • Cumple con regulaciones gubernamentales • Mejora el proceso de toma de decisiones • Ayuda a construir soluciones eficientes Beneficios de entender las especificaciones de los cambios 35Solid Quality Mentors
  28. 28. Introducción al seguimiento de datos • Depende! Algunos ejemplos: – Seguimiento de datos • Conocer sobre los estados intermedios es importante – Seguimiento de envío de paquetes • No necesitas saber todos los lugares por donde pasó – Seguimiento de cuentas bancarias • Quieres conocer cada cambio y quién lo hizo – Seguimiento de ventas en el mercado • Necesitas hacer seguimiento de llamada de teléfono ¿qué necesitas saber? 36Solid Quality Mentors
  29. 29. Introducción al seguimiento de datos Cambiar atributos 37 • ¿Qué tipos de cambios necesitamos seguir para responder las preguntas?Ámbito • ¿Cuánta información histórica está disponible para el cambio? • ¿Son necesarios los estados intermedios? Dato modificado • Cantidad de información relativa al cambio • ¿Quién hizo el cambio , como y cuándo? Información del cambio • ¿Cuándo esta disponible la información del cambio? Disponibilidad del cambio Solid Quality Mentors
  30. 30. Introducción al seguimiento de datos • Provee diferentes niveles de cambio de información • Puede ser intrusivo – Seguimiento basado en triggers – Columnas temporales – Consultas con join – Tablas adicionales para seguimiento de borrados • El escenario de requerimientos varia! – La misma forma de seguimiento a todo no es el mejor planteamiento a la hora de construir soluciones de este tipo Métodos tradicionales de seguimiento 38Solid Quality Mentors
  31. 31. Introducción al seguimiento de datos Características de seguimiento de datos en SQL Server 2008 39 • Información de seguimiento rica, proveniente del log Captura de datos modificados • Ligereza a la hora de proveer seguimiento de cambios Seguimiento de cambios • Pequeño impacto a la hora de dar información de auditoria Auditoria de SQL Solid Quality Mentors
  32. 32. Agenda • Mejoras T-SQL • Constructores de fila • Parámetros de tabla • Sentencia MERGE • INSERT sobre DML • Agrupación de conjuntos (Grouping Sets) • Dependencias 40 • Seguimiento de datos • Captura de datos modificados • Seguimiento de cambios • Auditoría • Consejos y bloqueos • Service Broker Solid Quality Mentors
  33. 33. Captura de modificaciones de datos Atributos 41 • Todos los cambios DML • Información de cambios DDL para ALTER TABLE Ámbito • Todos los cambios • Todas los valores de columna • Imagen de antes y después de la actualización Cambio de datos • Columnas actualizadas • Tipo de operación • Información transaccional Información de cambio • Cambios asíncronos unos segundos después del commit Disponibilidad del cambio Solid Quality Mentors
  34. 34. Captura de modificaciones de datos • Proceso de captura – Lee el log de transacciones y rellena las tablas de cambio • Tablas de cambio – Contienen los cambios de las tablas con seguimiento – Esquema similar al objeto fuente – Metadatos adicionales • APIs de enumeración – TVF(funciones de tabla) – Usado para el acceso a los datos de seguimiento Conceptos clave ( continuación) 42Solid Quality Mentors
  35. 35. Captura de modificaciones de datos • Trabajo de agente de SQL Server – Aprovecha la infraestructura del agente de lectura del log – Consistencia transaccional en caso de fallos – Captura imágenes del log antes y después – El trabajo puede pararse para minimizar el impacto en la fuente • Trabajo de limpieza de retención – Purga las tablas con cambios – Por defecto 72 horas • Metadatos – Proveen información sobre la configuración CDC Arquitectura 43Solid Quality Mentors
  36. 36. Captura de modificaciones de datos • Dos funciones de tabla (TVFs) – Para cada tabla modificada – Permite consultas basadas en rangos – Opción de filtrado de filas para el filtrado del conjunto resultado – La consistencia del conjunto resultado se garantiza cuando se utilizan rangos temporales Acceso a los datos modificados: base 44Solid Quality Mentors
  37. 37. Captura de modificaciones de datos • Cuenta para sobrecarga de almacenamiento adicional – Las tablas de cambio residen en la misma BBDD – El subsistema de discos tendrá que soportar el coste adicional E/S – Se minimiza el coste del seguimiento si solo se realiza seguimiento a las tablas y columnas necesarias • Almacenamiento de tablas en – Un grupo de ficheros aparte – En un disco separado de los archivos de datos y de los logs Consideraciones de rendimiento 45Solid Quality Mentors
  38. 38. Demo 08 Captura de modificaciones de datos (CDC) 46Solid Quality Mentors
  39. 39. Captura de modificaciones de datos Ejemplo de rendimiento 47 4,3 4,4 4,8 1 1,5 2 2,5 3 3,5 4 4,5 5 No CDC CDC (capture stopped) CDC (capture running) tiempo de DML (en secs) para una carga mixta de 300.000 comandos Solid Quality Mentors
  40. 40. Agenda • Mejoras T-SQL • Constructores de fila • Parámetros de tabla • Sentencia MERGE • INSERT sobre DML • Agrupación de conjuntos (Grouping Sets) • Dependencias 48 • Seguimiento de datos • Captura de datos modificados • Seguimiento de cambios • Auditoría • Consejos y bloqueos • Service Broker Solid Quality Mentors
  41. 41. Seguimiento de cambios • ¿Qué filas han cambiado de una tabla? – Solo necesitamos saber que fila ha cambiado – No cuantas veces ha cambiado – O los valores intermedios de los cambios – Obtener el último dato directamente desde la tabla de seguimiento • ¿Ha cambiado una fila? – Necesitamos saber de forma fiable si una fila ha cambiado – Necesitamos inmediatamente la información sobre las modificaciones Introducción 49Solid Quality Mentors
  42. 42. Seguimiento de cambios • Todos lo cambios DML (Insert, Update, Delete)Ámbito • Cambios netos – una fila ha cambiado y puedes obtener los últimos datos • Solo se almacenan las columnas de clave primaria para identificar la fila Cambio de datos • Operación (Insert, Update, Delete) • Máscara de bit de columnas actualizadas • Contexto definido por la aplicación Información de cambio • Seguimiento inmediato mediante DML Disponibilidad del cambio Atributos 50Solid Quality Mentors
  43. 43. Seguimiento de cambios • Periodo de retención – Determina la cantidad de datos sobre seguimiento de cambios almacenada – Especificado como parte de la configuración de BBDD – Tarea en background del motor para realizar las limpiezas – Los clientes deben sincronizarse con mas frecuencia que el periodo de retención • Información sobre configuración – Disponible desde SSMS y vistas del catálogo Administración 51Solid Quality Mentors
  44. 44. Demo 09 Seguimiento de cambios 52Solid Quality Mentors
  45. 45. Seguimiento de cambios Performance: DML overhead 53 17% 11% 10% 11% 13% 5% 0% 10% 20% DELETE UPDATE INSERT 10K Operations Second Index Change Tracking 17% 11% 10% 36% 68% 38% 0% 20% 40% 60% 80% DELETE UPDATE INSERT 10K Operations Trigger-based Tracking Change Tracking Solid Quality Mentors
  46. 46. Auditoria Introducción 54 • Nuevos objetos de configuración de auditoria – Nueva configuración de auditoria por T-SQL • Nuevos permisos para controlar la configuración de auditoria – Ej. “ALTER ANY AUDIT”, “ALTER ANY AUDIT SPECIFICATION” • Filtrado de auditoria basado en acciones, objetos y principales a nivel de servidor y de BBDD – Compatibilidad hacia atras para grupos eventos SQLTrace – Audición para acciones Select, Insert, Update, Delete • Cambios a Management Studio y SMO Audit Audit Specification Locations File Audit Specification App Log Security Log Solid Quality Mentors
  47. 47. Auditoria • Intentos de login al servidor • DML/Select • DDL (Create, Alter, Etc) • Permisos (Grant, Revoke, Deny) Ámbito • Todos los cambios para entidades configuradas • Todos los cambios para auditarlas a si mismas Datos cambiados • Qué acción ocurrió • Cuándo ocurrió la acción • Quién fue el responsable • Dónde estaba el responsable de la acción Información del cambio atributos 55Solid Quality Mentors
  48. 48. Bloqueos y consejos • Nueva opción para ALTER TABLE • Permite deshabilitar el escalado a nivel de tabla – En tablas particionadas se pueden habilitar bloqueos para escalar a las particiones • En lugar de a la tabla completa • Puede mejorar la concurrencia reduciendo la contención por bloqueos • Sugerencias: AUTO, TABLE y DISABLE – Con disable podemos prevenir el escalado de bloqueos en la mayoria de casos Escalado de bloqueos 56Solid Quality Mentors
  49. 49. SQL Server 2008: Resumen • Novedades para desarrolladores – TSQL (merge, TVP), tipos de datos, compresión de datos, filestream,… 57Solid Quality Mentors Enrique Catalá ecatala@solidq.com http://blogs.solidq.com http://ecatalab.blogspot.com

×