Upload
mario-balladares
View
237
Download
0
Embed Size (px)
Citation preview
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
1/99
SQL Server 2008
Novedades en Transact-SQL
SQL Server 2008 Boot Camp Da 1
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
2/99
Informacin sobre versin Beta
Toda la informacin es relativa a la beta pblicaCTP5 de SQL Server 2008
Comandos y funcionalidades pueden diferir dela versin RTM final
2Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
3/99
Agenda
Mejoras T-SQL Constructores de fila Parmetros de tabla Sentencia MERGE
INSERT sobre DML Agrupacin de conjuntos
(Grouping Sets) Dependencias
3
Seguimiento de datos Captura de datos
modificados Seguimiento de
cambios Auditora
Consejos y bloqueos Service Broker
Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
4/99
Mejoras T-SQL
IntellisSense en el editor de consultas deTransact-SQL Ventana de listado de errores Mejoras en DECLARE Operadores de asignacin
+=, -=, *=, /=, %=
CONVERT Estilos para datos hexadecimales
ALTER DATABASE para nivel de compatibilidad En lugar del procedimiento del sistema
sp_dbcmptlevel
Mejoras generales
4Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
5/99
Mejoras T-SQL
Caractersticas Finalizacin de palabras Sentencias resumen (outline statements) Subrayado de errores
configurable Cuando no est disponible?
Existe un cdigo de error sobre el cursor
Estas dentro de un comentario Estas dentro de una cadena literal Las opciones automticas estn desactivadas
Intellisense
5Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
6/99
Demo 01
Mejoras T-SQL6Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
7/99
Constructores de fila
Nueva sintaxis para clusula VALUE Ahora devuelve una tabla relacional con mltiples
filas
Uso con la sentencia INSERT Para insertar mltiples filas como una operacin
atmica
Uso para definir una expresin de tabla virtual
Constructores de fila
7Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
8/99
Demo 02
Constructores de fila8Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
9/99
Parmetros de tabla
Escenarios Actualizacin en lotes del servidor Parmetros en lote para usar en consultas Pasar una tabla entre rutinas Migracin de otras bases de datos
Los datos almacenados son tabulares! Criterio comn
Gran cantidad de datos pasados desde el cliente alservidor
Aplicacin de lgica de negocio antes de actualizardatos de forma persistente
Ej. Data mining, sistemas de inventariado, herramientasETL
Motivacin
9Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
10/99
Parmetros de tabla
Soluciones actuales Uso de arrays de parmetros, XML o blobs
propietarios Re-ensamblado de filas en el lado servidor
Lgica de programacin compleja Sin soporte para operaciones de conjuntos Bajo rendimiento debido a mltiples viajes de ida y vuelta
Parmetros de tabla
Tipo de datos definidos por el usuario para datos tabulares Paso de datos tabulares a
Procedimientos almacenados y funciones
Completo soporte en la pila del cliente
Introduccin
10Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
11/99
Parmetros de tabla
Procedimientos almacenados Procesa transacciones de negocio completas Un procedimiento hace todo en orden de llegada
Mejor modelo de programacin Programacin simple Mejor rendimiento a travs de reduccin de viajes de
ida y vuelta
Mejor manejabilidad Mejor lgica de negocio en procedimientos almacenados
Beneficios: empaquetado de lgica de negocio
11Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
12/99
Parmetros de tabla
Tipo de datos seguro Tipos de datos intercambiados con el servidor Informacin de tipos compleja
En contraste con los parmetros escalares o los
parmetros de array Informacin de esquema esparcido por mltiples parmetros ej. CustomerID, CustomerName, etc.
No se puede descubrir el tipo de datos ej. CustomerTableType
Soluciones tpicas Cadenas separadas por comas o XML Cdigo complejo para capturar la solucin Impactos de rendimiento
Beneficios: tipado fuerte
12Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
13/99
Parmetros de tabla
Reduccin de los viajes de ida y vuelta alservidor Puede enviarse datos potencialmente sueltos Transporte de datos muy grande
Envo de mltiples lotes usando TVPs para conseguir unbuen balance entre concurrencia y rendimiento
Operadociones basadas en conjuntos Ejecutar lgica de negocio en el servidor
Transporte de datos eficiente El cliente puede especificar rdenes ordenadas por
clave nica para mejora de la optimizacin de laconsulta
Beneficios: rendimiento
13Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
14/99
Parmetros de tabla
Tipos de tabla definidos por usuario Un nuevo tipo definido por el usuario Alineado con la definicin de tabla inline para tablas
variables
Sintaxis basada en CREATE TYPE Se puede usarse para la declaracin de variables de
tabla Se puede definir ndices y restricciones
Nueva vista catalogada para tipos de datos tablaSys.table_types
Detalles del tipo de datos Tabla
14Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
15/99
Parmetros de tabla
Table Valued Parameter (TVP) Parmetros de tipo Table Type
Entrada de parmetros para Procedimientos almacenados
funciones Es necesario definirlo como READONLY Se necesita permiso REFERENCES en el tipo de
tabla
Su mbito es el cuerpo del procedimiento o funcin Sin soporte para CLR
Las TVPs no se pueden pasar como parmetros aprocedimientos/funciones del CLR
Detalles de TVPs
15Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
16/99
Parmetros de tabla
Actualizaciones por lotes en el servidor Aplicacin de lgica de negocio antes de modificar
las tablas persistentes
Parmetros por lotes usados en consultas Operadores orientados a conjuntos sobre datos
persistentes
Pasar datos de tabla entre subrutinas Actualmente solo es posible usar tablas temporales
Migracin de otras bases de datos Los desarrolladores de Oracle se quejaban de esto
Escenarios de uso
16Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
17/99
Demo 03
Parmetros de tabla17Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
18/99
Parmetros de tabla
Soporte desde todos los tipos de cliente ADO.Net Dentro de .NET 3.5 (Visual Studio 2008)
SNAC: ODBC & OLEDB
HTTP: SOAP Datos de tabla enlazados a memoria como parmetro
Pasar datos de fila al proveedor
Soporte: soporte a pilas cliente
18
ADO.NET ODBC OLE DB
SqlParameter ahora aceptaDataTable
Array de buffers lincado a losarrays de parmetros anlogos
Introducido IRowset que soportabuffering
ADO.NET ODBC OLE DB
DbDataReader e IEnumerable
Creado en el paradigma data-at-execution
IRowset especfico deaplicacin
Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
19/99
Parmetros de tabla
Herramientas Soportado desde SSMS Soporte SMO Soporte del Profiler con Replay
Replicacin La replicacin soporta SPs que contienen TVPs
Replicacin de tipos de datos tabla
Soporte: soporte de herramientas y replicacin
19Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
20/99
Parmetros de tabla
Se comporta como un BCP dentro del servidor
Basado en tablas temporales Puede beneficiar el cacheo de tablas temporales
Paso de gran cantidad de datos al servidor Menor viajes de ida y vuelta
Optimizaciones en TDS
Rendimiento
20Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
21/99
Parmetros de tablaRendimiento: comparacin con otras tecnologas
21
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 servidorClient = la entrada proviene de un proceso remotoDirect Insert = una sentencia bulk insert singularComplex = lgica adicional que no se puede manejar desde una sentencia bulk insert singular
Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
22/99
Parmetros de tabla
No se mantienen estadsticas en columnas deTVPs Soporte solo para parmetros de entrada
Han de ser pasados como READONLY
TVPs no pueden utilizarse como destino de SELECT INTO (pueden usarse como fuente) INSERT EXEC (pueden aparecer en el cuerpo)
Restricciones
22Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
23/99
Sentencia Merge
Nueva sentencia MERGE Tambin conocida como UPSERT (que tambinsoporta deletes)
Lgica de combinacin para operaciones atmicas
para INSERT UPDATE DELETE
Llevar a cabo manipulaciones de datos contra Una tabla singular Una tabla fuente (o expresin de tabla)
Concordante al SQL 2006 (con extensiones)
Introduccin
23Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
24/99
Sentencia Merge
Insercin o actualizacin OLTP (UPSERT) Insercin o actualizacin en Data warehouse Sincronizacin con fuente
insert/update/delete
Escenarios MERGE
24Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
25/99
Sentencia Merge
Sentencia MERGE
Vistazo a la sintaxis
25
MERGE
USING (SELECT FROM)
ON
WHEN MATCHED
THEN
WHEN TARGET NOT MATCHED [AND ]
THEN
WHEN SOURCENOT MATCHED [AND ]THEN
Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
26/99
Sentencia Merge
MERGE INTO Tabla objetivo USING
Tabla fuente (o expresin de tabla)
ON Definicin de predicado similar al join
Componentes: fuente y objetivos
26Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
27/99
Sentencias Merge
WHEN MATCHED [AND] Sentencia para lanzarse cuando se encuentra unaconcordancia en el objetivo
WHEN [TARGET] NOT MATCHED [AND]
Sentencia a lanzarse cuando no se encuentraconcordancia en el objetivo
WHEN SOURCE NOT MATCHED [AND] Sentencia a lanzarse cuando no se encuentra
concordancia en el origen
Usar $action con la clusula OUTPUT paraconseguir accin
Componentes: concordancia en predicados y acciones
27Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
28/99
Demo 04
Sentencia MERGE28Solid Quality Mentors
S i M
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
29/99
Sentencia Merge
El destino no puede ser Una tabla remota Puede lanzarse contra un servidor remoto mediante
EXECUTE AT
Vista particionada No est soportado Parametrizacin SIMPLE
Solo se soporta FORCED
Uso del hint USE PLAN no est soportado
(todava) Solo se reportan el n de filas acumulados
Sin desglose por INSERT, UPDATE y DELETE
Limitaciones
29Solid Quality Mentors
S i M
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
30/99
Sentencia Merge
Los triggers relevantes de INSTEAD OF y AFTER seactivan segn las acciones de la sentencia MERGE WHEN NOT MATCHED THEN INSERT
activacin de triggers insert
WHEN MATCHED THEN DELETE
activacin de triggers delete
Las tablas inserted y deleted solo contienen lainformacin relevante para la accin
Ejemplo: En un trigger INSERT, las inserciones solo contienenfilas procesadas por la clusula WHEN NOT MATCHED THENINSERT
Triggers
30Solid Quality Mentors
S i M
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
31/99
Sentencia Merge
Los triggers estn asociados a sentencias DML mltiplesse lanzan una vez por cada coincidencia Ej: Un trigger para insert y update se lanzan dos veces en una
sentencia MERGE que contiene acciones INSERT y UPDATE
Los triggers INSTEAD OF han de existir para todas opara ninguna de las acciones incluidas en la sentenciaMERGE
No existen nuevos triggers especficos para MERGE La lgica de negocio, restricciones y reglas se valida como
siempre No necesitamos escribir nuevos triggers cuando usamos
MERGE
Triggers (continuacin)
31Solid Quality Mentors
S i M
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
32/99
Sentencia Merge
La sentencia UPDATE pueden ser no determinstas Si un UPDATE contiene un join uno a muchos entre una fuentey un objetivo, se elige una estrategia random
El resultado es dependiente del plan de ejecucin y nodeterminista
MERGE es determinista Restringe mltiples actualizaciones en la misma fila Lanza un error de ejecucin cuando intenta:
Actualizar una fila mas de una vez
Actualizar y borrar la misma fila El comportamiento es predecible y consistente con otros
vendedores Intentos repetidos de borrar la misma fila se ignoran
Actualizaciones no determinsticas
32Solid Quality Mentors
S t i M
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
33/99
Sentencia Merge
El plan de consulta une (join) fuente y destino Unin optimizado como una consulta SELECT normal Preferible si ambas tienen un ndice en las claves de une
La mezcla tiene rendimiento ptimo cuando: El ndice del origen es nico y con cobertura
Actualizar la misma fila mas de una vez no se permite El ndice de unin es clustered
Cuando un origen y un destino tienen tamao similares, launin de mezcla toma el plan mas ptimo Ambas tablas se escanean una sola vez y no hay necesidad de
ordenacin
Cuando la fuente es mas pequea que el destino, se opta porun loop anidado La bsqueda es mas eficiente si se realiza sobre datos ordenados
Rendimiento
33Solid Quality Mentors
S t i M
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
34/99
Sentencia Merge
Meta: Mezclar eficientemente datos desde un fichero La fuente de un MERGE puede ser una sentenciaOPENROWSET(BULK)
No existe nueva sentencia BULK MERGE El proceso completo se realiza en un nico lote
Las operaciones estn completamente logeadas BULK INSERT contra ndices (clstered o non-clustered) son
mnimamente loggeadas solo cuando una tabla est vaca El objetivo de un MERGE normalmente no est vacio
UPDATE y DELETE siempre estn logeados
Escenario BULK
34Solid Quality Mentors
S t i M
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
35/99
Sentencia Merge
El rendimiento de Merge es ptimo solo cuando la fuentetenga las claves nicas, aunque los archivos no tenganndices
Nuevos consejos de OPENROWSET (BULK) vencen laslimitaciones y permiten escenarios de mezcla de altorendimiento ORDER ( { column [ ASC | DESC ] } [ ,... n ] ) [ UNIQUE ]
Consejos validados en tiempo de ejecucin mediante unafuncin secuencial Se lanza un error si el flujo de datos no es conforme a dichos consejos Validacin no costosa se comparan claves actual contra anterior
Ordenamiento y unicidad para garantizarrendimiento eficiente sin ordenamiento al realizaruniones
Nuevos consejos usables desde fuera del MERGE
Nuevos consejos para OPENROWSET(BULK)
35Solid Quality Mentors
INSERT b DML
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
36/99
INSERT sobre DML
Habilidad para tener Sentencia INSERT que consuma resultados de un DML Filtrado en la salida de un DML con una clusula where
Mejora de la clusula OUTPUT INTO
Por qu? Historial de dimensiones lentamente cambiantes
Vertido de secuencias de datos DML en una tablasecundaria para post-procesado
Introduccin
36Solid Quality Mentors
INSERT b DML
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
37/99
INSERT sobre DML
Restricciones en objetivo iguales a OUTPUTINTO El objetivo debe ser una tabla local o variable Sin restricciones de clave ajena
Restricciones check permitidas en Katmai Triggers INSTEAD OF o AFTER no permitidos
Restricciones en predicados de filtro Subconsultas UDFs de acceso a datos acceso a datos full-text
Restricciones
37Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
38/99
Demo 05
INSERT sobre DML38Solid Quality Mentors
A i d j t
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
39/99
Agrupacin de conjuntos
Definicin: un conjunto de columnas agrupadas Mejoras relativas a agrupacin de conjuntos: Nueva clusula ISO en GROUP BY
GROUPING SETS, CUBE, ROLLUP
Nueva funcin GROUPING_ID Identifica una asociacin de agrupacin de conjuntos
Nueva sub clusula permite un mejorrendimiento con conjuntos de resultadoslgicamente equivalentes de mltiples deconsultas con GROUP BY
Introduccin
39Solid Quality Mentors
Agr pacin de conj ntos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
40/99
Agrupacin de conjuntos
Define mltiples agrupaciones en una mismaconsulta Se usan NULLs utilizados como marcadores CUBE
Abreviacin para una superagrupacin de conjuntosconstruida desde elementos de entrada(2^nagrupaciones de elementos para n elementos)
ROLLUP Abreviacin para el subconjunto de agrupacin de
conjuntos que es relevante en un escenariojerrquico ( n+1 agrupacin de conjuntos para nelementos)
Sub clusulas
40Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
41/99
Demo 06
Agrupacin de conjuntos41Solid Quality Mentors
Agrupacin de conjuntos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
42/99
Agrupacin de conjuntos
Nueva agrupacin de conjuntos relativa acaractersticas que te permiten materializar eindexar agregados eficientemente en el almacnde datos relacional
Nueva sentencia MERGE puede usarse pararealizar actualizaciones incrementales (solomedidas aditivas)
Puede considerarse una alternativa a cubosbsicos de Analisis Services
Alternativa a los cubos de Analisis Services
42Solid Quality Mentors
Dependencias de objetos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
43/99
Dependencias de objetos
Descubrimiento de dependencias fiable Entre objetos Procedimientos almacenados, tablas, vistas, funciones,
triggers, UDTs, etc. Objetos vinculados y no vinculados a esquemas
Introduccin
43Solid Quality Mentors
Dependencias de objetos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
44/99
Dependencias de objetos
Descubrir todos los objetos Del que un objeto depende Que depende de un objeto Que depende de otra BBDD
Realizando consultas distribuidas usando nombre de4 partes
Escenarios
44Solid Quality Mentors
Dependencias de objetos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
45/99
Dependencias de objetosExtensiones de catlogo
45
Nueva vista de catlogo; 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 funcin de administracin dinmica; reemplazasp_depends
Devuelve una fila para cada entidad referenciada por la entidaddada Ej. Mustrame 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 entidaddada Ej. Mustrame todos los objetos que se romperan si borro la
tabla t1
Nueva funcin de administracin dinmica;reemplaza sp_depends
Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
46/99
Demo 07
Dependencias de objeto46Solid Quality Mentors
Introduccin al seguimiento de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
47/99
Introduccin al seguimiento de datos
Por qu estamos realmente interesados en loscambios?
Conocer las especificaciones del cambio es muy
valioso Qu cambi Cundo se cambio
Cmo se cambi Quin lo cambi
Entendiendo el cambio
47Solid Quality Mentors
Introduccin al seguimiento de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
48/99
Introduccin al seguimiento de datos
Provee interioridades a la raz de las causas delproblema Cumple con regulaciones gubernamentales Mejora el proceso de toma de decisiones Ayuda a construir soluciones eficientes
Beneficios de entender las especificaciones de los cambios
48Solid Quality Mentors
Introduccin al seguimiento de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
49/99
Introduccin al seguimiento de datos
Depende! Algunos ejemplos: Seguimiento de datos Conocer sobre los estados intermedios es importante
Seguimiento de envo de paquetes
No necesitas saber todos los lugares por donde pas Seguimiento de cuentas bancarias
Quieres conocer cada cambio y quin lo hizo
Seguimiento de ventas en el mercado
Necesitas hacer seguimiento de llamada de telfono
qu necesitas saber?
49Solid Quality Mentors
Introduccin al seguimiento de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
50/99
Introduccin al seguimiento de datosEjemplos de escenarios computacionales
50
Que cambios realiz John?Procesado depalabra
Qu cambios de configuracin ocurrieron desde la ltima vez quesincronice?
Servicios de ActiveDirectory
Qu atributos y contenidos cambiaron? Quin hizo el cambio?Sistema de ficheros
Historia de todos los cambios realizados al fichero
Fue el fichero modificado al mismo tiempo por dos personas?Control fuente
Qu filas cambiaron? Qu columna cambi? Quin hizo el cambio?
Base de datos
Solid Quality Mentors
Introduccin al seguimiento de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
51/99
Introduccin al seguimiento de datosCambiar atributos
51
Qu tipos de cambios necesitamos seguirpara responder las preguntas?mbito
Cunta informacin histrica est disponiblepara el cambio?
Son necesarios los estados intermedios?Dato modificado
Cantidad de informacin relativa al cambio Quin hizo el cambio , como y cundo?
Informacin delcambio
Cundo esta disponible la informacin delcambio?
Disponibilidaddel cambio
Solid Quality Mentors
Introduccin al seguimiento de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
52/99
Introduccin al seguimiento de datos
Las preguntas de las que quieres respuestasdeterminan la eliminacin de informacin que nonecesitas
Cuantas mas respuestas necesitas, masseguimiento debes hacer Seguir una variedad de cambios Seguir el histrico de esos cambios
Capturar mas informacin especfica de dichoscambios Proveer la informacin sobre los cambios de una
forma temporal
La suma de todo
52Solid Quality Mentors
Introduccin al seguimiento de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
53/99
Introduccin al seguimiento de datos
Proporcionar conocimientos clave en el sistema Ayuda a construir aplicaciones eficientes Auditoria Replicacin
Sincronizacin ETL Resolucin de problemas
Cada escenario requiere un nivel de informacinde cambios
Seguimiento de cambios de BBDD
53Solid Quality Mentors
Introduccin al seguimiento de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
54/99
Introduccin al seguimiento de datos
Provee diferentes niveles de cambio deinformacin
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 tipo
Mtodos tradicionales de seguimiento
54Solid Quality Mentors
Introduccin al seguimiento de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
55/99
Introduccin al seguimiento de datosCaractersticas de seguimiento de datos en SQL Server 2008
55
Informacin de seguimiento rica,proveniente del logCaptura dedatos
modificados
Ligereza a la hora de proveer seguimientode cambiosSeguimiento de
cambios
Pequeo impacto a la hora de darinformacin de auditoria
Auditoria deSQL
Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
56/99
Captura de modificaciones de datosAtributos
56
Todos los cambios DML Informacin de cambios DDL para ALTERTABLEmbito
Todos los cambios Todas los valores de columna
Imagen de antes y despus de laactualizacin
Cambio de
datos
Columnas actualizadas Tipo de operacin Informacin transaccional
Informacin decambio
Cambios asncronos unos segundosdespus del commit
Disponibilidaddel cambio
Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
57/99
Captura de modificaciones de datos
Objeto fuente Objeto del cual quieres seguir los cambios De momento solo tablas
Instancia de captura Cada instancia de captura crea una tabla con los
cambios Cada tabla puede tener 2 instancias de captura Diferentes instancias para capturar diferentes
esquemas
Conceptos clave
57Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
58/99
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 enumeracin TVF(funciones de tabla) Usado para el acceso a los datos de seguimiento
Conceptos clave ( continuacin)
58Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
59/99
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 imgenes del log antes
y despus El trabajo puede pararse paraminimizar el impacto en la fuente
Trabajo de limpieza deretencin Purga las tablas con cambios
Por defecto 72 horas Metadatos
Proveen informacin sobre laconfiguracin CDC
Arquitectura
59Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
60/99
Captura de modificaciones de datos
Habilitado a nivel de base de datos Requiere privilegios sysadmin Se crea un usuario y esquema cdc
Habilitado a nivel individual de tabla Requiere privilegios db_owner Soporta captura solo de un subconjunto de columnas
Por razones de privacidad o rendimiento
Soportado solo en la versin enterprise
Configuracin
60Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
61/99
Captura de modificaciones de datos
Generalmente no accedido directamente Solo por administradores Acceso normal va funciones TVF
Seguimiento de operaciones DML 1 fila para insertar y borrar 2 filas para actualizar
Contiene 5 columnas con metadatos adicionales
Informacin perteneciente a transacciones (LSNs) Mascara de actualizacin
Tablas de cambios: base
61Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
62/99
Captura de modificaciones de datos
Insensible a las modificaciones del esquema delobjeto fuente Aadiendo/eliminando columnas Excepcin
Cambios de tipo de datos Catalogo de reportes de columnas modificadas (por
procesos externos)
Usa una segunda instancia con un nuevo
esquema Seguimiento de cambios en ambas instancias til cuando aplicaciones o ETL no puede cambiarse
inmediatamente
Tablas de cambios: cambios de esquema
62Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
63/99
Captura de modificaciones de datos
Pueden ponerse en un grupo de ficheros aparte Job de limpieza previene tamao excesivo Puede configurarse Predeterminado cada 72 horas
Captura solo un subconjunto de columnas Ej. No captura columnas LOBs
Tablas de cambios: tamao y rendimiento
63Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
64/99
Captura de modificaciones de datos
Dos funciones de tabla (TVFs) Para cada tabla modificada Permite consultas basadas en rangos Opcin 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
64Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
65/99
Captura de modificaciones de datos
Todos los cambios TVF til para extraer todos los cambios de forma eficiente Opcionalmente provee una imagen antes y despus
de la actualizacin
Cambios TVF Net Identifica fielmente operaciones netas de una fila en
un rango Provee informacin sobre que columna(s) han
cambiado para la fila neta modificada Dependiendo de las opciones de filtrado puede
resultar una consulta mas costosa
Acceso a los datos modificados: TVFs
65Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
66/99
Captura de modificaciones de datos
Funciones avanzadas del sistema Provee mapeo y otras funcionalidades La funcion de mapeo de tiempo al LSN habilita el rango para
ser especificado usando tiempo Resulta fcil determinar la marca mnima y mxima para que
los cambios estn disponibles en las tablas de cambio Determina que columna ha cambiado, dando una mscara
de bits
Accediendo a los datos modificados: Avanzado
66Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
67/99
Captura de modificaciones de datos
Modelo de seguridad Acceso a los datos modificados mediante TVFs Como mnimo se requiere acceso a todas las
columnas con seguimiento de la tabla base
El rol CDC provee una capa adicional de seguridad
Acceso a los datos modificados: seguridad
67Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
68/99
Captura de modificaciones de datos
Funciones del sistema Administracin mediante trabajos del agente de SQL
Server Aadir, configurar, borrar
Administracin de tablas de cambio Borrado manual Inicio de escaneo manual
Metadatos ricos Histrico de cambios DDL al esquema fuente
Configuracin de CDC, objetos fuente y tablas de cambio Precisin, latencia y estado actual del escaneo del log errores
Administracin
68Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
69/99
Captura de modificaciones de datosEjemplo de rendimiento
69
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
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
70/99
Captu a de od cac o es de datos
Cuenta para sobrecarga de almacenamientoadicional 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 columnasnecesarias
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
70Solid Quality Mentors
Captura de modificaciones de datos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
71/99
p
Consultas de enumeracin de cambios netos Son tpicamente un poco mas costosas que todas las
consultas de cambios Las agregaciones y las mascaras de computacin de
columnas requieren mas procesado
Consideraciones de rendimiento (continuacin)
71Solid Quality Mentors
Demo 08
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
72/99
Demo 08
Captura de modificaciones de datos (CDC)72Solid Quality Mentors
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
73/99
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 ha
cambiado Necesitamos inmediatamente la informacin sobre
las modificaciones
Introduccin
73Solid Quality Mentors
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
74/99
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 fila
Cambio de
datos
Operacin (Insert, Update, Delete) Mscara de bit de columnas actualizadas Contexto definido por la aplicacin
Informacin decambio
Seguimiento inmediato mediante DMLDisponibilidad
del cambio
Atributos
74Solid Quality Mentors
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
75/99
Segu e to de ca b osEscenarios
75
Caching
Ej. Catlogos de producto desolo lectura
Guardados offline
Ej. Ordenes de productoactualizables , modo decacheo de outlook, repartir elestado de los registros
Cliente(s) con cache
SQL Server 2008:
Seguimiento decambios
Cliente(s) con almacenamiento offline
WebService
SQL Server 2008:Seguimiento de
cambios
Solid Quality Mentors
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
76/99
Segu e to de ca b os
Los cambios se registran automticamente En tablas internas del sistema Solo va valores de clave primaria (con metadatos
adicionales)
En tiempo de commit (no en el momento de laejecucin DML)
Se accede a los cambios Va una nueva funcin del sistema
Usando nuevas funciones del sistema para obtenerinformacin de versiones
Arquitectura
76Solid Quality Mentors
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
77/99
g
Habilitando a nivel de BBDD Comandos T-SQL DDL y SSMS Periodo de retencin configurable Tarea de auto-limpieza configurable
Recomendado nivel de aislamiento de instantnea Evitar problemas de concurrencia con limpieza Consistencia ante cambios
Habilitando a nivel de tabla individual
Comandos T-SQL DDL y SSMS Seguimiento de actualizacin de columnas
configurables
Configuracin
77Solid Quality Mentors
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
78/99
g
Funcin CHANGETABLE()
Devuelve una tabla Parmetro CHANGES
Devuelve las filas modificadas basadas en una versinespecficas
La versin ha de mantenerse llamando a la aplicacin ParmetroVERSION
Siempre se devuelve la ltima versin de las filas til para chequear versiones ante conflictos
Otras funciones Para obtener versiones antiguas o actuales de unatabla
Para chequear mascaras de bits ante actualizaciones
Acceso a datos modificados: nuevas funciones del sistemas
78Solid Quality Mentors
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
79/99
g
Debe tener permisos SELECT En al menos columnas de clave primaria
Nuevo permiso VIEW CHANGE TRACKING En las tabla asegurables
Requerido por las siguientes razones Los usuarios ven los valores de clave primaria despus del
borrado Los usuarios ven que un valor ha cambiado (aunque no vean
el valor actual porque no tienen permisos)
Acceso a datos modificados: seguridad
79Solid Quality Mentors
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
80/99
g
Periodo de retencin Determina la cantidad de datos sobre seguimiento de
cambios almacenada Especificado como parte de la configuracin de
BBDD Tarea en background del motor para realizar las
limpiezas Los clientes deben sincronizarse con mas frecuencia
que el periodo de retencin
Informacin sobre configuracin Disponible desde SSMS y vistas del catlogo
Administracin
80Solid Quality Mentors
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
81/99
g
Una fila aadida a una tabla interna por cada Fila modificada Transaccin commiteada
En comandos DML Cerca del mantenimiento de ndices en una tabla
Impacto: bases
81Solid Quality Mentors
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
82/99
g
Para cada fila modificada: 18 bytes Tamao de PK Hasta 128 bytes de contexto (opcionales)
4 bytes (columnas actualizadas)
Para cada transaccin confirmada: 76 bytes
Impacto: almacenamiento
82Solid Quality Mentors
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
83/99
g
Ejemplo de espacio utilizado 10,000 filas modificadas 2 filas por transaccin 2 columnas actualizadas
((18 + 8 + 0 + 8) * 10000) + (76 * 10000/2) = ~700KB
Impacto: ejemplo
83Solid Quality Mentors
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
84/99
gPerformance: DML overhead
84
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
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
85/99
g
APIs de .NET habilitadas para sincronizar los almacenes de datos Facilitan la creacin de aplicaciones offline
Provee un modelo de trabajo hacia cualquier almacenamiento
Provee soporte para SQL Server CE
Sincronizacin de adaptador para servidor Puede tomar ventaja sobre seguimiento de cambios integrados
Evita aadir columnas, triggers y tablas; mejor rendimiento
Servicios de sincronizacin para ADO.NET
85
SQLServer
Compact
DatabaseServer
ADO.NETDataAdapter
Local /OfflineStore
ADO.NETSyncAdapter
Solid Quality Mentors
Demo 09
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
86/99
Demo 09
Seguimiento de cambios
86Solid Quality Mentors
Auditoria
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
87/99
Introduccin
87
Nuevos objetos de configuracin de auditoria Nueva configuracin de auditoria por T-SQL
Nuevos permisos para controlar la configuracin 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 Audicin para acciones Select, Insert, Update, Delete
Cambios a Management Studio y SMO
AuditAudit
Specification
LocationsFile
AuditSpecification
App Log
Security Log
Solid Quality Mentors
Seguimiento de cambios
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
88/99
g
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 si
mismas
Datoscambiados
Qu accin ocurri Cundo ocurri la accin Quin fue el responsable Dnde estaba el responsable de la accin
Informacin delcambio
atributos
88Solid Quality Mentors
Auditoria
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
89/99
Probablemente en CTP6 Disponible solo en la versin Enterprise Ejemplos
Nota: sintaxis supuesta
Disponibilidad
89
AUDIT LOGON TO MyAuditFolder
AUDIT UPDATE(Salary)
ON dbo.Employee
TO MyAuditFolder
WHERE Salary>200000,
Solid Quality Mentors
Seguimiento de datos en SQL 2008
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
90/99
Resumen
90
Seguimiento decambios
Captura de datosmodificados
Auditoria
mbito DML DMLCiertas DDL Login, LogoutDML, SelectDDLPermisos (grant, etc..)
Cambio dedatos
Cambios netos unafila modificadaSolo valores de clave
primaria
Todos los cambiosTodos los valores decolumna
Todos los cambiosAccinObjetivo
Correcto/falloInformacindel cambio
Operacin DMLColumnas actualizadas
Operacin DMLColumnas ActualizadasInformacin de transaccin
CundoQuin
Disponibilidaddel cambio
Inmediatamentemediante DML
Retraso configurableTrabajo de captura que leeel log de transacciones
Eventos extendidos
Escenariosclave
Sincronizacin deaplicaciones de ida oida y vuelta
ETL incremental paraalmacenes de datos
Auditoria
Ediciones Todas las ediciones Solo versin Enterprise Solo versin Enterprise
Disponibilidad CTP de noviembre CTP de Junio CTP6Solid Quality Mentors
Bloqueos y consejos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
91/99
q y j
Nueva opcin 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 contencin porbloqueos
Escalado de bloqueos
91Solid Quality Mentors
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
92/99
Bloqueos y consejos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
93/99
Nuevo hint FORCESEEK Fuerza las bsquedas por ndices en la tabla Trabaja con ndices clustered y non-clustered Facilita al optimizador de consultas su uso
Interseccin de ndices (predicados AND) Uniones por ndices (predicados OR)
Puede ayudar a consultas que usan LIKE e IN Problema usualmente por psima estimacin de cardinalidad
Si se usa en una vista, se propaga Los consejos de ndice se ignoran Error si todas las tablas base no tienen como mnimo un
ndice cada una
FORCESEEK
93Solid Quality Mentors
Bloqueos y consejos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
94/99
Ejemplo y detalles en BOL
Ejemplo FORCESEEK
94
can
Solid Quality Mentors
Bloqueos y consejos
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
95/99
Antes de usarlo Asegura que las estadsticas estn actualizadas y fiables! Habilita la auto creacin/actualizacin manual Evaluacin de cardinalidad pobre en estimaciones de
coste
Los consejos siempre limitan las elecciones deloptimizacin
No usar Consejo INDEX(0) con FORCESEEK
Fuerza un escaneo de la tabla base para el que no seencuentra ningn plan (error)
Consejo USE PLAN con FORCESEEK El ltimo se ignora
Mejores prcticas FORCESEEK
95Solid Quality Mentors
Bloqueos y consejosC
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
96/99
Nuevo consejo de consulta TABLE HINT Permite especificar hints de tabla como hints de
consulta Apunta a objetos especficos
Uso recomendado en contextos de plan guides Puede causar que la semntica de la consulta vare Asegurarse de entender todas las implicaciones
Consejos que afectan a la semntica
Consejos que no afectan a la semntica Bien documentado con muchos ejemplos en BOL
Consejos de tabla en consejos de consulta
96Solid Quality Mentors
Service BrokerM j
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
97/99
Diagnsticos Prioridades de conversacin
Mejoras
97Solid Quality Mentors
Novedades en Transact-SQL
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
98/99
Q
Preguntas y respuestas
98Solid Quality Mentors
Links de SQL Server 2008
8/2/2019 102 - SQL 2008 - Transact-SQL News ES
99/99
Sitio web de SQL Server 2008 http://www.microsoft.com/sql/2008
Ejemplos de SQL Server 2008 http://www.codeplex.com/SqlServerSamples
http://www.microsoft.com/sql/2008http://www.codeplex.com/SqlServerSampleshttp://www.codeplex.com/SqlServerSampleshttp://www.microsoft.com/sql/2008