Sei sulla pagina 1di 99

SQL Server 2008 Boot Camp Da 1

SQL Server 2008 Novedades en Transact-SQL

Informacin sobre versin Beta


Toda la informacin es relativa a la beta pblica CTP5 de SQL Server 2008 Comandos y funcionalidades pueden diferir de la versin RTM final

Solid Quality Mentors

Agenda
Mejoras T-SQL Constructores de fila Parmetros de tabla Sentencia MERGE INSERT sobre DML Agrupacin de conjuntos (Grouping Sets) Dependencias Seguimiento de datos Captura de datos modificados Seguimiento de cambios Auditora Consejos y bloqueos Service Broker

Solid Quality Mentors

Mejoras T-SQL
Mejoras generales

IntellisSense en el editor de consultas de Transact-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
Solid Quality Mentors

Mejoras T-SQL
Intellisense

Caractersticas
Finalizacin de palabras Sentencias resumen (outline statements) Subrayado de errores configurable Existe un cdigo de error sobre el cursor Estas dentro de un comentario Estas dentro de una cadena literal Las opciones automticas estn desactivadas
5

Cuando no est disponible?

Solid Quality Mentors

Demo 01

Mejoras T-SQL
Solid Quality Mentors

Constructores de fila
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

Solid Quality Mentors

Demo 02

Constructores de fila
Solid Quality Mentors

Parmetros de tabla
Motivacin

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 al servidor Aplicacin de lgica de negocio antes de actualizar datos de forma persistente Ej. Data mining, sistemas de inventariado, herramientas ETL
Solid Quality Mentors

Parmetros de tabla
Introduccin

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


Solid Quality Mentors

10

Parmetros de tabla
Beneficios: empaquetado de lgica de negocio

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

Solid Quality Mentors

11

Parmetros de tabla
Beneficios: tipado fuerte

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
Solid Quality Mentors

12

Parmetros de tabla
Beneficios: rendimiento

Reduccin de los viajes de ida y vuelta al servidor


Puede enviarse datos potencialmente sueltos Transporte de datos muy grande
Envo de mltiples lotes usando TVPs para conseguir un buen 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 la consulta
Solid Quality Mentors

13

Parmetros de tabla
Detalles del tipo de datos 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 tabla Sys.table_types

Solid Quality Mentors

14

Parmetros de tabla
Detalles de TVPs

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 a procedimientos/funciones del CLR
Solid Quality Mentors

15

Parmetros de tabla
Escenarios de uso

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
Solid Quality Mentors

16

Demo 03

Parmetros de tabla
Solid Quality Mentors

17

Parmetros de tabla
Soporte: soporte a pilas cliente

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
ADO.NET SqlParameter ahora acepta DataTable ODBC Array de buffers lincado a los arrays de parmetros anlogos OLE DB Introducido IRowset que soporta buffering

Pasar datos de fila al proveedor


ADO.NET DbDataReader e IEnumerable <SqlDataRecord>
Solid Quality Mentors

ODBC Creado en el paradigma dataat-execution

OLE DB IRowset especfico de aplicacin 18

Parmetros de tabla
Soporte: soporte de herramientas y replicacin

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

Solid Quality Mentors

19

Parmetros de tabla
Rendimiento

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

Solid Quality Mentors

20

Parmetros de tabla
Rendimiento: comparacin con otras tecnologas
Data Source File File File Server Logic Direct Insert Direct Insert Complex # of Rows < 1000 > 1000 < 1000 Bulk X X X TVP

File
Client Client Client Client

Complex
Direct Insert Direct Insert Complex Complex

> 1000
< 1000 > 1000 < 1000 > 1000

X
X X X 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 = lgica adicional que no se puede manejar desde una sentencia bulk insert singular

Solid Quality Mentors

21

Parmetros de tabla
Restricciones

No se mantienen estadsticas en columnas de TVPs 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)

Solid Quality Mentors

22

Sentencia Merge
Introduccin

Nueva sentencia MERGE


Tambin conocida como UPSERT (que tambin soporta 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)


Solid Quality Mentors

23

Sentencia Merge
Escenarios MERGE

Insercin o actualizacin OLTP (UPSERT) Insercin o actualizacin en Data warehouse Sincronizacin con fuente
insert/update/delete

Solid Quality Mentors

24

Sentencia Merge
Vistazo a la sintaxis

Sentencia MERGE
MERGE <source> USING (SELECT <expression>FROM <target>) <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>

Solid Quality Mentors

25

Sentencia Merge
Componentes: fuente y objetivos

MERGE INTO
Tabla objetivo

USING
Tabla fuente (o expresin de tabla)

ON
Definicin de predicado similar al join

Solid Quality Mentors

26

Sentencias Merge
Componentes: concordancia en predicados y acciones

WHEN MATCHED [AND]


Sentencia para lanzarse cuando se encuentra una concordancia en el objetivo

WHEN [TARGET] NOT MATCHED [AND]


Sentencia a lanzarse cuando no se encuentra concordancia 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 para conseguir accin


Solid Quality Mentors

27

Demo 04

Sentencia MERGE
Solid Quality Mentors

28

Sentencia Merge
Limitaciones

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
Solid Quality Mentors

29

Sentencia Merge
Triggers

Los triggers relevantes de INSTEAD OF y AFTER se activan 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 la informacin relevante para la accin
Ejemplo: En un trigger INSERT, las inserciones solo contienen filas procesadas por la clusula WHEN NOT MATCHED THEN INSERT

Solid Quality Mentors

30

Sentencia Merge
Triggers (continuacin)

Los triggers estn asociados a sentencias DML mltiples se 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 o para ninguna de las acciones incluidas en la sentencia MERGE

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 Solid Quality Mentors

31

Sentencia Merge
Actualizaciones no determinsticas

La sentencia UPDATE pueden ser no determinstas


Si un UPDATE contiene un join uno a muchos entre una fuente y un objetivo, se elige una estrategia random El resultado es dependiente del plan de ejecucin y no determinista

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
Solid Quality Mentors

32

Sentencia Merge
Rendimiento

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, la unin 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 por un loop anidado
La bsqueda es mas eficiente si se realiza sobre datos ordenados
Solid Quality Mentors

33

Sentencia Merge
Escenario BULK

Meta: Mezclar eficientemente datos desde un fichero La fuente de un MERGE puede ser una sentencia OPENROWSET(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

Solid Quality Mentors

34

Sentencia Merge
Nuevos consejos para OPENROWSET(BULK)

El rendimiento de Merge es ptimo solo cuando la fuente tenga las claves nicas, aunque los archivos no tengan ndices Nuevos consejos de OPENROWSET (BULK) vencen las limitaciones y permiten escenarios de mezcla de alto rendimiento
ORDER ( { column [ ASC | DESC ] } [ ,... n ] ) [ UNIQUE ]

Consejos validados en tiempo de ejecucin mediante una funcin 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 garantizar rendimiento eficiente sin ordenamiento al realizar uniones
Nuevos consejos usables desde fuera del MERGE
Solid Quality Mentors

35

INSERT sobre DML


Introduccin

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 <table>

Por qu?
Historial de dimensiones lentamente cambiantes Vertido de secuencias de datos DML en una tabla secundaria para post-procesado

Solid Quality Mentors

36

INSERT sobre DML


Restricciones

Restricciones en objetivo iguales a OUTPUT INTO


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
Solid Quality Mentors

37

Demo 05

INSERT sobre DML


Solid Quality Mentors

38

Agrupacin de conjuntos
Introduccin

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 mejor rendimiento con conjuntos de resultados lgicamente equivalentes de mltiples de consultas con GROUP BY
Solid Quality Mentors

39

Agrupacin de conjuntos
Sub clusulas

Define mltiples agrupaciones en una misma consulta Se usan NULLs utilizados como marcadores CUBE
Abreviacin para una superagrupacin de conjuntos construida desde elementos de entrada(2^n agrupaciones de elementos para n elementos)

ROLLUP
Abreviacin para el subconjunto de agrupacin de conjuntos que es relevante en un escenario jerrquico ( n+1 agrupacin de conjuntos para n elementos)
Solid Quality Mentors

40

Demo 06

Agrupacin de conjuntos
Solid Quality Mentors

41

Agrupacin de conjuntos
Alternativa a los cubos de Analisis Services

Nueva agrupacin de conjuntos relativa a caractersticas que te permiten materializar e indexar agregados eficientemente en el almacn de datos relacional

Nueva sentencia MERGE puede usarse para realizar actualizaciones incrementales (solo medidas aditivas)
Puede considerarse una alternativa a cubos bsicos de Analisis Services
Solid Quality Mentors

42

Dependencias de objetos
Introduccin

Descubrimiento de dependencias fiable


Entre objetos
Procedimientos almacenados, tablas, vistas, funciones, triggers, UDTs, etc. Objetos vinculados y no vinculados a esquemas

Solid Quality Mentors

43

Dependencias de objetos
Escenarios

Descubrir todos los objetos


Del que un objeto depende Que depende de un objeto Que depende de otra BBDD Realizando consultas distribuidas usando nombre de 4 partes <servidor, bd, esquema, objeto>

Solid Quality Mentors

44

Dependencias de objetos
Extensiones de catlogo sys.sql_expression_dependencies 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.dm_sql_referenced_entities Nueva funcin de administracin dinmica; reemplaza sp_depends Devuelve una fila para cada entidad referenciada por la entidad dada Ej. Mustrame todo los objetos referenciados por el PA sys.dm_sql_referencing_entities
Nueva funcin de administracin dinmica; reemplaza sp_depends Devuelve una fila por cada entidad que referencie a la entidad dada Ej. Mustrame todos los objetos que se romperan si borro la tabla t1
Solid Quality Mentors

45

Demo 07

Dependencias de objeto
Solid Quality Mentors

46

Introduccin al seguimiento de datos


Entendiendo el cambio

Por qu estamos realmente interesados en los cambios? Conocer las especificaciones del cambio es muy valioso
Qu cambi Cundo se cambio Cmo se cambi Quin lo cambi

Solid Quality Mentors

47

Introduccin al seguimiento de datos


Beneficios de entender las especificaciones de los cambios

Provee interioridades a la raz de las causas del problema Cumple con regulaciones gubernamentales Mejora el proceso de toma de decisiones Ayuda a construir soluciones eficientes

Solid Quality Mentors

48

Introduccin al seguimiento de datos


qu necesitas saber?

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

Solid Quality Mentors

49

Introduccin al seguimiento de datos


Ejemplos de escenarios computacionales

Procesado de palabra Servicios de Active Directory Sistema de ficheros Control fuente Base de datos
Solid Quality Mentors

Que cambios realiz John?

Qu cambios de configuracin ocurrieron desde la ltima vez que sincronice?

Qu atributos y contenidos cambiaron? Quin hizo el cambio?

Historia de todos los cambios realizados al fichero Fue el fichero modificado al mismo tiempo por dos personas?

Qu filas cambiaron? Qu columna cambi? Quin hizo el cambio?

50

Introduccin al seguimiento de datos


Cambiar atributos

mbito

Qu tipos de cambios necesitamos seguir para responder las preguntas?

Dato modificado Informacin del cambio Disponibilidad del cambio


Solid Quality Mentors

Cunta informacin histrica est disponible para el cambio? Son necesarios los estados intermedios? Cantidad de informacin relativa al cambio Quin hizo el cambio , como y cundo?

Cundo esta disponible la informacin del cambio?


51

Introduccin al seguimiento de datos


La suma de todo

Las preguntas de las que quieres respuestas determinan la eliminacin de informacin que no necesitas Cuantas mas respuestas necesitas, mas seguimiento debes hacer
Seguir una variedad de cambios Seguir el histrico de esos cambios Capturar mas informacin especfica de dichos cambios Proveer la informacin sobre los cambios de una forma temporal
Solid Quality Mentors

52

Introduccin al seguimiento de datos


Seguimiento de cambios de BBDD

Proporcionar conocimientos clave en el sistema Ayuda a construir aplicaciones eficientes


Auditoria Replicacin Sincronizacin ETL Resolucin de problemas

Cada escenario requiere un nivel de informacin de cambios


Solid Quality Mentors

53

Introduccin al seguimiento de datos


Mtodos tradicionales de seguimiento

Provee diferentes niveles de cambio de informacin 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
Solid Quality Mentors

54

Introduccin al seguimiento de datos


Caractersticas de seguimiento de datos en SQL Server 2008

Captura de datos modificados Seguimiento de cambios

Informacin de seguimiento rica, proveniente del log

Ligereza a la hora de proveer seguimiento de cambios

Auditoria de SQL
Solid Quality Mentors

Pequeo impacto a la hora de dar informacin de auditoria

55

Captura de modificaciones de datos


Atributos
Todos los cambios DML Informacin de cambios DDL para ALTER TABLE Todos los cambios Todas los valores de columna Imagen de antes y despus de la actualizacin Columnas actualizadas Tipo de operacin Informacin transaccional

mbito
Cambio de datos Informacin de cambio Disponibilidad del cambio
Solid Quality Mentors

Cambios asncronos unos segundos despus del commit


56

Captura de modificaciones de datos


Conceptos clave

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

Solid Quality Mentors

57

Captura de modificaciones de datos


Conceptos clave ( continuacin)

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 enumeracin
TVF(funciones de tabla) Usado para el acceso a los datos de seguimiento
Solid Quality Mentors

58

Captura de modificaciones de datos


Arquitectura

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 para minimizar el impacto en la fuente

Trabajo de limpieza de retencin


Purga las tablas con cambios Por defecto 72 horas

Metadatos
Proveen informacin sobre la configuracin CDC

Solid Quality Mentors

59

Captura de modificaciones de datos


Configuracin

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


Solid Quality Mentors

60

Captura de modificaciones de datos


Tablas de cambios: base

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

Solid Quality Mentors

61

Captura de modificaciones de datos


Tablas de cambios: cambios de esquema

Insensible a las modificaciones del esquema del objeto 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
Solid Quality Mentors

62

Captura de modificaciones de datos


Tablas de cambios: tamao y rendimiento

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

Solid Quality Mentors

63

Captura de modificaciones de datos


Acceso a los datos modificados: base

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

Solid Quality Mentors

64

Captura de modificaciones de datos


Acceso a los datos modificados: TVFs

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
Solid Quality Mentors

65

Captura de modificaciones de datos


Accediendo a los datos modificados: Avanzado

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

Solid Quality Mentors

66

Captura de modificaciones de datos


Acceso a los datos modificados: seguridad

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

Solid Quality Mentors

67

Captura de modificaciones de datos


Administracin

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
68

Solid Quality Mentors

Captura de modificaciones de datos


Ejemplo de rendimiento

CDC (capture running)

4,8

CDC (capture stopped)

4,4

No CDC

4,3

1,5

2,5

3,5

4,5

tiempo de DML (en secs) para una carga mixta de 300.000 comandos

Solid Quality Mentors

69

Captura de modificaciones de datos


Consideraciones de rendimiento

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
Solid Quality Mentors

70

Captura de modificaciones de datos


Consideraciones de rendimiento (continuacin)

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

Solid Quality Mentors

71

Demo 08

Captura de modificaciones de datos (CDC)


Solid Quality Mentors

72

Seguimiento de cambios
Introduccin

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 informacin sobre las modificaciones
Solid Quality Mentors

73

Seguimiento de cambios
Atributos

mbito
Cambio de datos Informacin de cambio Disponibilidad del cambio
Solid Quality Mentors

Todos lo cambios DML (Insert, Update, Delete)

Cambios netos una fila ha cambiado y puedes obtener los ltimos datos Solo se almacenan las columnas de clave primaria para identificar la fila Operacin (Insert, Update, Delete) Mscara de bit de columnas actualizadas Contexto definido por la aplicacin

Seguimiento inmediato mediante DML

74

Seguimiento de cambios
Escenarios
Caching
Ej. Catlogos de producto de solo lectura Web Service
Cliente(s) con cache SQL Server 2008: Seguimiento de cambios

Guardados offline
Ej. Ordenes de producto actualizables , modo de cacheo de outlook, repartir el estado de los registros
Cliente(s) con almacenamiento offline
Solid Quality Mentors

SQL Server 2008: Seguimiento de cambios 75

Seguimiento de cambios
Arquitectura

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 la ejecucin DML)

Se accede a los cambios


Va una nueva funcin del sistema Usando nuevas funciones del sistema para obtener informacin de versiones

Solid Quality Mentors

76

Seguimiento de cambios
Configuracin

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
Solid Quality Mentors

77

Seguimiento de cambios
Acceso a datos modificados: nuevas funciones del sistemas

Funcin CHANGETABLE()
Devuelve una tabla Parmetro CHANGES
Devuelve las filas modificadas basadas en una versin especficas La versin ha de mantenerse llamando a la aplicacin

Parmetro VERSION
Siempre se devuelve la ltima versin de las filas til para chequear versiones ante conflictos

Otras funciones
Para obtener versiones antiguas o actuales de una tabla Para chequear mascaras de bits ante actualizaciones
Solid Quality Mentors

78

Seguimiento de cambios
Acceso a datos modificados: seguridad

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)

Solid Quality Mentors

79

Seguimiento de cambios
Administracin

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
Solid Quality Mentors

80

Seguimiento de cambios
Impacto: bases

Una fila aadida a una tabla interna por cada


Fila modificada Transaccin commiteada

En comandos DML
Cerca del mantenimiento de ndices en una tabla

Solid Quality Mentors

81

Seguimiento de cambios
Impacto: almacenamiento

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

Solid Quality Mentors

82

Seguimiento de cambios
Impacto: ejemplo

Ejemplo de espacio utilizado


10,000 filas modificadas 2 filas por transaccin 2 columnas actualizadas ((18 + 8 + 0 + 8) * 10000) + (76 * 10000/2) = ~700KB

Solid Quality Mentors

83

Seguimiento de cambios
Performance: DML overhead
10K Operations 5%
INSERT INSERT

10K Operations 38%

10% 13%
UPDATE UPDATE

10% 68% 11% 36%


DELETE

11% 11%
DELETE

17% 0%
Second Index
Solid Quality Mentors

17% 0% 20% 40% 60% 80%

10%

20%

Change Tracking

Trigger-based Tracking

Change Tracking
84

Seguimiento de cambios
Servicios de sincronizacin para ADO.NET

ADO.NET SyncAdapter DataAdapter


Local / Offline Store
SQL Server Compact

Database Server

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

Solid Quality Mentors

85

Demo 09

Seguimiento de cambios
Solid Quality Mentors

86

Auditoria
Introduccin

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 a nivel 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

Audit
Audit Specification Audit Specification
Solid Quality Mentors

Locations
File App Log Security Log
87

Seguimiento de cambios
atributos
Intentos de login al servidor DML/Select DDL (Create, Alter, Etc) Permisos (Grant, Revoke, Deny)

mbito

Datos cambiados

Todos los cambios para entidades configuradas Todos los cambios para auditarlas a si mismas

Informacin del cambio


Solid Quality Mentors

Qu accin ocurri Cundo ocurri la accin Quin fue el responsable Dnde estaba el responsable de la accin
88

Auditoria
Disponibilidad

Probablemente en CTP6 Disponible solo en la versin Enterprise Ejemplos


AUDIT LOGON TO MyAuditFolder
AUDIT UPDATE(Salary) ON dbo.Employee TO MyAuditFolder WHERE Salary>200000,

Nota: sintaxis supuesta

Solid Quality Mentors

89

Seguimiento de datos en SQL 2008


Resumen
Seguimiento de cambios mbito DML Captura de datos modificados DML Ciertas DDL Auditoria Login, Logout DML, Select DDL Permisos (grant, etc..) Todos los cambios Accin Objetivo Correcto/fallo Cundo Quin

Cambio de datos

Cambios netos una fila modificada Solo valores de clave primaria Operacin DML Columnas actualizadas

Todos los cambios Todos los valores de columna Operacin DML Columnas Actualizadas Informacin de transaccin

Informacin del cambio

Disponibilidad del cambio


Escenarios clave

Inmediatamente mediante DML


Sincronizacin de aplicaciones de ida o ida y vuelta Todas las ediciones CTP de noviembre

Retraso configurable Trabajo de captura que lee el log de transacciones


ETL incremental para almacenes de datos

Eventos extendidos

Auditoria

Ediciones Disponibilidad
Solid Quality Mentors

Solo versin Enterprise CTP de Junio

Solo versin Enterprise CTP6


90

Bloqueos y consejos
Escalado de bloqueos

Nueva opcin 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 contencin por bloqueos

Solid Quality Mentors

91

Bloqueos y consejos
Mtodos de escalado de bloqueos

AUTO
El motor elige la granularidad de escalado apropiada para el esquema de tabla
Si la tabla es particionada: granularidad HoBT Sino : granularidad de TABLA

TABLE
Escalado granulado a nivel de tabla Mismo comportamiento que en SQL Server 2005 Mtodo por defecto

DISABLE
Previene el escalado de bloqueo en la mayora de los casos
Solid Quality Mentors

92

Bloqueos y consejos
FORCESEEK

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
Solid Quality Mentors

93

Bloqueos y consejos
Ejemplo FORCESEEK

Ejemplo y detalles en BOL

can

Solid Quality Mentors

94

Bloqueos y consejos
Mejores prcticas FORCESEEK

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 del optimizacin

No usar
Consejo INDEX(0) con FORCESEEK
Fuerza un escaneo de la tabla base para el que no se encuentra ningn plan (error)

Consejo USE PLAN con FORCESEEK


El ltimo se ignora
Solid Quality Mentors

95

Bloqueos y consejos
Consejos de tabla en consejos de consulta

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

Solid Quality Mentors

96

Service Broker
Mejoras

Diagnsticos Prioridades de conversacin

Solid Quality Mentors

97

Novedades en Transact-SQL
Preguntas y respuestas

Solid Quality Mentors

98

Links de SQL Server 2008


Sitio web de SQL Server 2008
http://www.microsoft.com/sql/2008

Ejemplos de SQL Server 2008


http://www.codeplex.com/SqlServerSamples

Solid Quality Mentors

99

Potrebbero piacerti anche