Novedades sql server 2008 para developers
Upcoming SlideShare
Loading in...5
×
 

Novedades sql server 2008 para developers

on

  • 523 views

 

Statistics

Views

Total Views
523
Views on SlideShare
522
Embed Views
1

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 1

https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Novedades sql server 2008 para developers Novedades sql server 2008 para developers Presentation Transcript

  • SQL Server 2008:Novedades para desarrolladoresEnrique Catalá (ecatala@solidq.com)Solid Quality Mentorshttp://www.solidq.comhttp://blogs.solidq.com/es/elRinconDelDBAhttp://ecatalab.blogspot.com
  • Solid Quality Mentors• Son autores de la mayoría de los artículos deSQL Server Magazine• Dictan cientos de ponencias al año enconferencias alrededor del mundo• Han diseñado los cursos oficiales deSQL Server 2005 (Relacional y BI)• Han escrito casi un centenar de libros• Son la mayor comunidad de Microsoft MVPsdel mundo con más de 50 de mentores
  • Data CompressionQuery Optimization ModesResource GovernorTransparent Data EncryptionExternal Key ManagementData AuditingPluggable CPUStreamlined InstallationServer Group ManagementEnterprise System ManagementPerformance System AnalysisUpgrade AdvisorPartition Aligned Indexed ViewsBackup CompressionEnterpriseDataPlatformDynamicDevelopmentBeyondRelationalPervasiveInsightSQL Server Conflict DetectionVisual Studio SupportSynchronized Programming modelSQL Server Change TrackingEntity Data ModelLINQVisual Entity DesignerEntity Aware AdaptersSSB Priorities & DiagnosticsCLR ImprovementPerformance Data CollectionExtended EventsDatabase Mirroring EnhancementsORDPATHLarge User Defined TypesDATE/TIME Data TypesImproved XML SupportEnterprise Reporting EngineAS Time SeriesVSTA Support for Script taskDeclarative Management Framework Table Valued ParametersGrouping SetsAS Scalable backup toolsAS Dimension DesignStar Join Query OptimizationMERGE SQL StatementChange Data Capture (CDC)Virtual Earth IntegrationGEOGRAPHY data typeGEOMETRY data typeSparse ColumnsFiltered IndexesIntegrated Full Text SearchFILESTREAM data typeEnhanced Data VisualizationReport Builder EnhancementsBetter rendering for Word & ExcelPartitioned Table ParallelismAS Query OptimizationsData Mining Engine ImprovementsIIS Agnostic Report DeploymentsBest Practice Design AlertsData CompressionResource GovernorPersistent LookupsScale-out ASData ProfilingAS Query & Writeback Perf
  • 4Solid Quality MentorsAgenda 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 datosmodificados• Seguimiento decambios• Auditoría• Consejos y bloqueos• Service Broker
  • Mejoras T-SQL• IntellisSense en el editor de consultas deTransact-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 sistemasp_dbcmptlevelMejoras generales5Solid Quality Mentors
  • Constructores de fila• Nueva sintaxis para cláusula VALUE– Ahora devuelve una tabla relacional con múltiplesfilas• Uso con la sentencia INSERT– Para insertar múltiples filas como una operaciónatómica• Uso para definir una expresión de tabla virtualConstructores de fila6Solid Quality Mentors
  • 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 alservidor– Aplicación de lógica de negocio antes de actualizardatos de forma persistente– Ej. Data mining, sistemas de inventariado, herramientasETLMotivación7Solid Quality Mentors
  • Parámetros de tablaIntroducción8Solid 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
  • 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 lopuede hacer todo)• Rendimiento– Reducción de idas y vueltas al servidor– Operaciones basadas en conjuntos– Transporte de datos eficienteBeneficios:9Solid Quality Mentors
  • Parámetros de tablaRendimiento: comparación con otras tecnologías10Data Source Server Logic # of Rows Bulk TVPFile Direct Insert < 1000 XFile Direct Insert > 1000 XFile Complex < 1000 XFile Complex > 1000 XClient Direct Insert < 1000 XClient Direct Insert > 1000 XClient Complex < 1000 XClient Complex > 1000 XFile = entrada de un archivo de datos formateado en el servidorClient = la entrada proviene de un proceso remotoDirect Insert = una sentencia bulk insert singularComplex = lógica adicional que no se puede manejar desde una sentencia bulk insert singularSolid Quality Mentors
  • Demo 03-Mejoras T-SQL-Constructores de filas-Parámetros de tabla11Solid Quality Mentors
  • Mejoras en T-SQLNuevos tipos de datos• Aplicaciones con una mejor gestión defecha/hora gracias a nuevos tipos de datos dealta precisión:datetime2 precisión 10nsdate solo fechaTime solo horaDatetimeoffset fecha-hora en UTC• Permite abordar problemas complejos con UDTsy UDAs más grandes
  • Tipos de datos espaciales• Algoritmos planares (tierra plana)y Geodésicos (globo terráqueo)• Visualización de datos espacialescon el Virtual Earth SDK• Intercambio de informaciónespacial utilizando GML XML• Integra los datos espaciales conaplicaciones .NET• Optimiza el rendimiento utilizandoíndices espaciales• Soporte de los partners para lostipos de datos espaciales47.6456,-122.12551
  • 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 geographyset @g =geography::Parse(‘POINT(47.6456 -122.12551)’)• Crear una tabla:create table T(id int,region geography)• Seleccionar datos:select * from T whereregion.STIntersects(@g)= 1Soporta los estándares OGCTipo de datos GeometryTipo de Datos Geography Modo de uso
  • Datos no estructuradosFileStream • Atributo de almacenamiento enVARBINARY(MAX)• Datos no estructuradosguardados directamente ensistema de archivos NTFS• Modelo de programación dual:– T-SQL (como un BLOB SQL)– API de Streaming de Win32Streaming APIs con semánticatransaccional de T-SQL• Consistencia transaccional• Capacidad de gestión integrada– Backup/restore– Seguridad de SQL Server• Limitado al tamaño del volumendel sistema de archivosGuarda BLOBs en DB+ File SystemAplicaciónBLOBBase de Datos
  • HierarchyID• Hace fácil el guardardatos y preguntar pordatos jerárquicos• Optimizado pararepresentar árboles, queson la forma mas comúnde datos jerárquicos– ExtremadamentecompactoPropiedades clave17© 2007 Solid Quality Mentors//1 /2 /3/1/1 /1/2/1/1/1/1/1/1/1/3/1 /3/2
  • Mejoras en XML• Mejoras en la capacidad de validación deesquemas• 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 ydate , incluso preservando información sobrezona horaria• Mejorado el soporte para unión y listado de tipos• Soporte para la sentencia “LET”Puntos clave18© 2007 Solid Quality Mentors
  • Sentencia MergeIntroducción19Solid Quality Mentors• Inserción o actualización OLTP (UPSERT)• Inserción o actualización en Data warehouse• Sincronización con fuente– insert/update/deleteMERGE <target>USING (SELECT <expression> FROM <source>) <alias>ON <intersection>WHEN MATCHEDTHEN <UPDATE | DELETE>WHEN TARGET NOT MATCHED [AND <conditions>]THEN <INSERT>WHEN SOURCE NOT MATCHED [AND <conditions>]THEN <UPDATE | DELETE>
  • Demo 04Sentencia MERGE20Solid Quality Mentors
  • 26Solid Quality MentorsAgenda 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 datosmodificados• Seguimiento decambios• Auditoría• Consejos y bloqueos• Service Broker
  • 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 (loveremos mas a fondo en la sesión de BI)– Vertido de secuencias de datos DML en una tablasecundaria para post-procesadoIntroducción27Solid Quality Mentors
  • Demo 05INSERT sobre DML28Solid Quality Mentors
  • 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 mejorrendimiento con conjuntos de resultadoslógicamente equivalentes de múltiples deconsultas con GROUP BYIntroducción29Solid Quality Mentors
  • Demo 06Agrupación de conjuntos31Solid Quality Mentors
  • Dependencias de objetosExtensiones de catálogo33• Nueva vista de catálogo; reemplaza a sys.sql_dependencies• Realiza seguimiento tanto de las que poseen esquema, comolas que no lo hacen• Realiza seguimiento entre bases de datos y entre servidoresreferenciados ( por nombre)sys.sql_expression_dependencies• Nueva función de administración dinámica; reemplazasp_depends• Devuelve una fila para cada entidad referenciada por la entidaddada• Ej. Muéstrame todo los objetos referenciados por el PAsys.dm_sql_referencing_entitiessys.dm_sql_referenced_entities• Devuelve una fila por cada entidad que referencie a la entidaddada• Ej. Muéstrame todos los objetos que se romperían si borro latabla t1Nueva función de administración dinámica;reemplaza sp_dependsSolid Quality Mentors
  • Introducción al seguimiento de datos• ¿Por qué estamos realmente interesados en loscambios?• Conocer las especificaciones del cambio es muyvalioso– Qué cambió– Cuándo se cambio– Cómo se cambió– Quién lo cambióEntendiendo el cambio34Solid Quality Mentors
  • Introducción al seguimiento de datos• Provee interioridades a la raíz de las causas delproblema• Cumple con regulaciones gubernamentales• Mejora el proceso de toma de decisiones• Ayuda a construir soluciones eficientesBeneficios de entender las especificaciones de los cambios35Solid Quality Mentors
  • 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
  • Introducción al seguimiento de datosCambiar atributos37• ¿Qué tipos de cambios necesitamos seguirpara responder las preguntas?Ámbito• ¿Cuánta información histórica está disponiblepara 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 delcambio• ¿Cuándo esta disponible la información delcambio?Disponibilidaddel cambioSolid Quality Mentors
  • Introducción al seguimiento de datos• Provee diferentes niveles de cambio deinformació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 mejorplanteamiento a la hora de construir soluciones deeste tipoMétodos tradicionales de seguimiento38Solid Quality Mentors
  • Introducción al seguimiento de datosCaracterísticas de seguimiento de datos en SQL Server 200839• Información de seguimiento rica,proveniente del logCaptura dedatosmodificados• Ligereza a la hora de proveer seguimientode cambiosSeguimiento decambios• Pequeño impacto a la hora de darinformación de auditoriaAuditoria deSQLSolid Quality Mentors
  • Agenda• Mejoras T-SQL• Constructores de fila• Parámetros de tabla• Sentencia MERGE• INSERT sobre DML• Agrupación de conjuntos(Grouping Sets)• Dependencias40• Seguimiento de datos• Captura de datosmodificados• Seguimiento decambios• Auditoría• Consejos y bloqueos• Service BrokerSolid Quality Mentors
  • Captura de modificaciones de datosAtributos41• Todos los cambios DML• Información de cambios DDL para ALTERTABLEÁmbito• Todos los cambios• Todas los valores de columna• Imagen de antes y después de laactualizaciónCambio dedatos• Columnas actualizadas• Tipo de operación• Información transaccionalInformación decambio• Cambios asíncronos unos segundosdespués del commitDisponibilidaddel cambioSolid Quality Mentors
  • Captura de modificaciones de datos• Proceso de captura– Lee el log de transacciones y rellena las tablas decambio• 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 seguimientoConceptos clave ( continuación)42Solid Quality Mentors
  • Captura de modificaciones de datos• Trabajo de agente de SQLServer– Aprovecha la infraestructura delagente de lectura del log– Consistencia transaccional encaso de fallos– Captura imágenes del log antesy después– El trabajo puede pararse paraminimizar el impacto en la fuente• Trabajo de limpieza deretención– Purga las tablas con cambios– Por defecto 72 horas• Metadatos– Proveen información sobre laconfiguración CDCArquitectura43Solid Quality Mentors
  • 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 conjuntoresultado– La consistencia del conjunto resultado se garantizacuando se utilizan rangos temporalesAcceso a los datos modificados: base44Solid Quality Mentors
  • Captura de modificaciones de datos• Cuenta para sobrecarga de almacenamientoadicional– Las tablas de cambio residen en la misma BBDD– El subsistema de discos tendrá que soportar el costeadicional E/S– Se minimiza el coste del seguimiento si solo serealiza seguimiento a las tablas y columnasnecesarias• Almacenamiento de tablas en– Un grupo de ficheros aparte– En un disco separado de los archivos de datos y delos logsConsideraciones de rendimiento45Solid Quality Mentors
  • Demo 08Captura de modificaciones de datos (CDC)46Solid Quality Mentors
  • Captura de modificaciones de datosEjemplo de rendimiento474,34,44,81 1,5 2 2,5 3 3,5 4 4,5 5No CDCCDC (capture stopped)CDC (capture running)tiempo de DML (en secs) para una carga mixta de 300.000 comandosSolid Quality Mentors
  • Agenda• Mejoras T-SQL• Constructores de fila• Parámetros de tabla• Sentencia MERGE• INSERT sobre DML• Agrupación de conjuntos(Grouping Sets)• Dependencias48• Seguimiento de datos• Captura de datosmodificados• Seguimiento decambios• Auditoría• Consejos y bloqueos• Service BrokerSolid Quality Mentors
  • 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 deseguimiento• ¿Ha cambiado una fila?– Necesitamos saber de forma fiable si una fila hacambiado– Necesitamos inmediatamente la información sobrelas modificacionesIntroducción49Solid Quality Mentors
  • Seguimiento de cambios• Todos lo cambios DML (Insert, Update, Delete)Ámbito• Cambios netos – una fila ha cambiado y puedesobtener los últimos datos• Solo se almacenan las columnas de claveprimaria para identificar la filaCambio dedatos• Operación (Insert, Update, Delete)• Máscara de bit de columnas actualizadas• Contexto definido por la aplicaciónInformación decambio• Seguimiento inmediato mediante DMLDisponibilidaddel cambioAtributos50Solid Quality Mentors
  • Seguimiento de cambios• Periodo de retención– Determina la cantidad de datos sobre seguimiento decambios almacenada– Especificado como parte de la configuración deBBDD– Tarea en background del motor para realizar laslimpiezas– Los clientes deben sincronizarse con mas frecuenciaque el periodo de retención• Información sobre configuración– Disponible desde SSMS y vistas del catálogoAdministración51Solid Quality Mentors
  • Demo 09Seguimiento de cambios52Solid Quality Mentors
  • Seguimiento de cambiosPerformance: DML overhead5317%11%10%11%13%5%0% 10% 20%DELETEUPDATEINSERT10K OperationsSecond Index Change Tracking17%11%10%36%68%38%0% 20% 40% 60% 80%DELETEUPDATEINSERT10K OperationsTrigger-based Tracking Change TrackingSolid Quality Mentors
  • AuditoriaIntroducción54• 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 anivel 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 SMOAuditAuditSpecificationLocationsFileAuditSpecificationApp LogSecurity LogSolid Quality Mentors
  • Auditoria• Intentos de login al servidor• DML/Select• DDL (Create, Alter, Etc)• Permisos (Grant, Revoke, Deny)Ámbito• Todos los cambios para entidadesconfiguradas• Todos los cambios para auditarlas a simismasDatoscambiados• Qué acción ocurrió• Cuándo ocurrió la acción• Quién fue el responsable• Dónde estaba el responsable de la acciónInformación delcambioatributos55Solid Quality Mentors
  • Bloqueos y consejos• Nueva opción para ALTER TABLE• Permite deshabilitar el escalado a nivel de tabla– En tablas particionadas se pueden habilitar bloqueospara escalar a las particiones• En lugar de a la tabla completa• Puede mejorar la concurrencia reduciendo la contención porbloqueos• Sugerencias: AUTO, TABLE y DISABLE– Con disable podemos prevenir el escalado debloqueos en la mayoria de casosEscalado de bloqueos56Solid Quality Mentors
  • SQL Server 2008: Resumen• Novedades para desarrolladores– TSQL (merge, TVP), tipos de datos, compresión dedatos, filestream,…57Solid Quality MentorsEnrique Cataláecatala@solidq.comhttp://blogs.solidq.comhttp://ecatalab.blogspot.com