Difusión por el Web de SQL Server 2005Parte 3: Lograr mayor concurrencia
Lo que vamos a cubrir:
• Utilizar el aislamiento de instantáneas para maximizar la concurrencia y reducir los bloqueos• Implementar instantáneas de la base de datos para proporcionar una copia de datos de punto en el tiempo de
sólo lectura• Utilizar vistas dinámicas de administración para supervisar y resolver problemas de transacciones y bloqueos
Conocimiento previo
Nivel 200Nivel 200
• Familiaridad con Transact-SQL• Familiaridad con los conceptos de bloqueo de la base de datos y
aislamiento
Agenda
• Repaso• Aislamiento de instantáneas• Instantáneas de la base de datos• Vistas dinámicas de administración
RepasoFlujo de trabajo de mantenimiento de la base de datos • Asistente para el
plan de mantenimiento• Herramienta gráfica
para generar planes básicos y avanzados
• Diseñador de plan de mantenimiento• Diseñador para flujo
de trabajo de mantenimiento
• Planes programados utilizando SQL Server Agent
RepasoSQL Profiler
• Nuevos eventos de seguridad• Eventos mejorados para dar seguimiento a los bloqueos• Soporte a eventos adicionales para dar seguimiento al
Intermediario de servicio• Capacidad para guardar resultados de seguimiento como XML
RepasoAsesor de ajustes de base de datos
• DTA reemplaza al Asesor de ajustes de índices• Establezca qué esquemas de índice y partición se deben utilizar• Analice las cargas de trabajo, genere recomendaciones y secuencias de
comandos
Consulta: Al diseñar un plan de Consulta: Al diseñar un plan de mantenimiento, usted desea ejecutar...mantenimiento, usted desea ejecutar...• [Consulta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar
propiedades de la diapositiva...Para editar.]
• Todas las bases de datos.• Todas las bases de datos del sistema.• Todas las bases de datos del usuario.• Todas las bases que no son del sistema.
RepasoFlujo de trabajo de mantenimiento de la base de datos
Al diseñar un plan de mantenimiento, usted desea ejecutar una tarea específica sobre todas las bases de datos excepto en la master, model, msdb y tempdb. ¿Cuál opción debe seleccionar de las listas desplegables de bases de datos en las propiedades de tareas?
1. Todas las bases de datos.
2. Todas las bases de datos del sistema.
3. Todas las bases de datos del usuario.
4. Todas las bases que no son del sistema.
Consulta: ¿Qué evento de SQL Profiler le Consulta: ¿Qué evento de SQL Profiler le permite dar seguimiento a los parti...permite dar seguimiento a los parti...• [Consulta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar
propiedades de la diapositiva...Para editar.]
• Lock:Deadlock.• Lista de interbloqueos.• Bloqueo: Cadena de interbloqueos.• Proceso: Interbloqueo.
RepasoSQL Profiler
¿Que evento de SQL Profiler le permite dar seguimiento a los participantes involucrados en un ciclo de interbloqueo?
1. Lock:Deadlock.
2. Lista de interbloqueos.
3. Bloqueo: Cadena de interbloqueos.
4. Proceso: Interbloqueo.
Consulta: Al utilizar el DTA para analizar Consulta: Al utilizar el DTA para analizar una carga de trabajo, la base de datos...una carga de trabajo, la base de datos...• [Consulta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar
propiedades de la diapositiva...Para editar.]
• Verdadero.• Falso.
RepasoAsesor de ajuste de la base de datos
Al utilizar el DTA para analizar una carga de trabajo, la base de datos se debe ejecutar en modo de usuario único.1. Verdadero.
2. Falso.
Agenda
• Repaso• Aislamiento de instantáneas• Instantáneas de la base de datos• Vistas dinámicas de administración
Aislamiento de instantáneasDescripción general de aislamiento de instantáneas • Lasversiones de fila se utilizan en lugar de bloqueos
• Reduce la contención y los riesgos de bloqueo• Incrementa la concurrencia
• Las filas modificadas se copian en tempdb• Se marcan con el número de secuencia de la operación (XSN)• Las versiones están en cadena como una lista vinculada
• Dos enfoques posibles:• Nivel de aislamiento comprometido a la lectura con versiones de fila• Nivel de aislamiento de instantáneas
Aislamiento de instantáneasUtilizando READ_COMMITTED_SNAPSHOT
• Seleccione la opción de la base de datos
• El aislamiento comprometido con la lectura utiliza versiones de filas en lugar de bloqueos• Implementa concurrencia optimista en lugar concurrencia pesimista• Utilice la señal READCOMMITTEDLOCK para utilizar bloqueos
ALTER DATABASE AdventureWorks SET READ_COMMITTED_SNAPSHOT ONALTER DATABASE AdventureWorks SET READ_COMMITTED_SNAPSHOT ON
Aislamiento de instantáneasUtilizando ALLOW_SNAPSHOT_ISOLATION
• Establecer la opción de la base de datos
• Establezca el nivel de aislamiento para que la sesión realice instantáneas
• Actualice los conflictos detectados automáticamente– Se eliminó la operación y surgió la excepción– Evita el escenario “actualización pérdida”
ALTER DATABASE AdventureWorks SET ALLOW_SNAPSHOT_ISOLATION ONALTER DATABASE AdventureWorks SET ALLOW_SNAPSHOT_ISOLATION ON
SET TRANSACTION ISOLATION LEVEL SNAPSHOTSET TRANSACTION ISOLATION LEVEL SNAPSHOT
Aislamiento de instantáneasComparación de los niveles de aislamiento de instantáneas
Instantánea comprometida para lectura
Aislamiento de instantánea
Opción de base de datos
READ_COMMITTED_SNAPSHOT ALLOW_SNAPSHOT_ISOLATION
Nivel de aislamiento de la sesión
READ COMMITTED (Predeterminado)
SNAPSHOT
Lectura de la versión
Información comprometida antes de la instrucción
Información comprometida antes de la operación
Detección de conflictos
Ninguno Automático
Aislamiento de instantáneas
Utilizar el nivel predeterminado de aislamiento READ COMMITTED
Utilizar READ_COMMITTED_SNAPSHOT Utilizar ALLOW_SNAPSHOT_ISOLATION
demodemo
Aislamiento de instantáneasConsideraciones de las versiones de filas
• Tamaño de tempdb• Las operaciones de larga ejecución puede llenar tempdb• Supervisar con PerfMon
• ALLOW_SNAPSHOT_ISOLATION puede no entrar en vigor inmediatamente debido a operaciones activas• Revise snapshot_isolation_state_desc en sys.databases
• Rendimiento general de SQL Server• La actividad de las versiones de la fila en tempdb puede incurrir en
gastos administrativos• Evalúe los requerimientos antes de habilitar el aislamiento de
instantáneas
Consulta: Ha activado la opción Consulta: Ha activado la opción READ_COMMITTED_SNAPSHOT en...READ_COMMITTED_SNAPSHOT en...• [Consulta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar
propiedades de la diapositiva...Para editar.]
• Establecer el nivel de aislamiento para SNAPSHOT en cada sesión de cliente.
• Especificar la señal de bloqueo READCOMMITTEDLOCK en sus consultas.
• Especificar la instrucción BEGIN TRAN antes de todas las consultas.
• Nada - el nivel predeterminado de aislamiento READ COMMITTED ahora utilizará las versiones de filas en lugar de los bloqueos.
RepasoRepasoAislamiento de instantáneas
Ha activado la opción READ_COMMITTED_SNAPSHOT en una base de datos. ¿Qué más debe hacer para asegurar que se utilice las versiones de filas?1. Establecer el nivel de aislamiento para SNAPSHOT en cada
sesión de cliente.2. Especificar la señal de bloqueo READCOMMITTEDLOCK en
sus consultas.3. Especificar la declaración BEGIN TRAN antes de todas las
consultas.4. Nada - el nivel predeterminado de aislamiento READ COMMITTED ahora utilizará las versiones de filas en lugar de los bloqueos.
Consulta: Desea evitar “actualizaciones Consulta: Desea evitar “actualizaciones pérdidas” en las operaciones que ...pérdidas” en las operaciones que ...• [Consulta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar
propiedades de la diapositiva...Para editar.]
• Activar la opción ALLOW_SNAPSHOT_ISOLATION, establecer el nivel de asilamiento para SNAPSHOT en cada sesión de cliente. Agregar código para manejar los errores de conflicto.
• Activar la opción READ_COMMITTED_SNAPSHOT en la base de datos.
• Utilizar una señal de bloqueo HOLDLOCK.• Utilizar el nivel de aislamiento REPEATABLE READ.
RepasoRepasoAislamiento de instantáneas
Desea evitar “actualizaciones pérdidas” en las operaciones que leen datos antes de modificarlos mientras que minimiza los bloqueos ¿ qué debe hacer?1. Activar la opción ALLOW_SNAPSHOT_ISOLATION, establecer el nivel de aislamiento para SNAPSHOT en cada sesión de cliente. Agregar código para manejar los errores de conflicto.2. Activar la opción READ_COMMITTED_SNAPSHOT en la
base de datos.3. Utilizar una señal de bloqueo HOLDLOCK.4. Utilizar el nivel de aislamiento REPEATABLE READ.
Agenda
• Repaso• Aislamiento de instantáneas• Instantáneas de la base de datos• Vistas dinámicas de administración
Instantáneas de la base de datosDescripción general de las instantáneas de la base de datos• Copia estática y de sólo lectura de la base de datos• Operación consistente en un punto en el tiempo• No almacena todas las páginas de datos• Lee sólo las páginas de datos originales
– Página en la base de datos fuente y no han cambiando los datos
– Página en la instantánea si han cambiado los datos
• Incrementa la E/S del disco de la base de datos fuente
Instantáneas de la base de datosCómo funcionan las instantáneas de la base de datos
SELECCIONAR …
BD Fuente FB Instantánea
Instantáneas de la base de datosCómo funcionan las instantáneas de la base de datos
ACTUALIZAR … SELECCIONAR …
Copiar al escribir
BD Fuente BD Instantánea
Instantáneas de la base de datosCómo funcionan las instantáneas de la base de datos
ACTUALIZAR … SELECCIONAR …
SELECCIONAR …
Copiar al escribir
BD Fuente BD Instantánea
Instantáneas de la base de datos Escenarios de las instantáneas de la base de datos• Informes históricos de punto en el tiempo• Habilitar la base de datos de copia para informes• Recuperarse de errores administrativos• Proteger contra errores de la aplicación o del usuario
Instantáneas de la base de datosAdministrar instantáneas de la base de datos
• Crear una instantánea de la base de datos
• Revertir a una instantánea de la base de datos
• Eliminar una instantánea de la base de datos
CREATE DATABASE AdventureWorks_Snapshot_Q1ON (NAME = AdventureWorks_Data, FILENAME = 'D:\Data\AWSSQ1_data.mdf')AS SNAPSHOT OF AdventureWorks
CREATE DATABASE AdventureWorks_Snapshot_Q1ON (NAME = AdventureWorks_Data, FILENAME = 'D:\Data\AWSSQ1_data.mdf')AS SNAPSHOT OF AdventureWorks
RESTORE DATABASE AdventureWorksFROM DATABASE_SNAPSHOT = 'AdventureWorks_Snapshot_Q1'
RESTORE DATABASE AdventureWorksFROM DATABASE_SNAPSHOT = 'AdventureWorks_Snapshot_Q1'
DROP DATABASE AdventureWorks_Snapshot_Q1DROP DATABASE AdventureWorks_Snapshot_Q1
Instantáneas de la base de datos
Crear una instantánea de la base de datos Acceder a la instantánea de la base de datos Utilizar una instantánea de la base de datos
para recuperarse de un error del usuario Revertir a una base de datos hacia una
instantánea de la base de datos
demodemo
Instantáneas de la base de datosConsideraciones de la instantánea de la base de datos• Están prohibidas las instantáneas de model, master y tempdb• Las actualizaciones en la base de datos fuente incurren en los
costos administrativos del rendimiento debido a la actividad de copiar al escribir
• Las instantáneas deben estar en la misma instancia que la base de datos fuente
• Las instantáneas sólo se pueden crear en las particiones NTFS• Suelte las instantáneas antes de soltar la base de datos fuente• No puede respaldar, restaurar, adjuntar o separar instantáneas• La indexación de texto completo no se soporta en las
instantáneas
Consulta: Observa que sus archivos de Consulta: Observa que sus archivos de base de datos de instantáneas son aprox...base de datos de instantáneas son aprox...• [Consulta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar
propiedades de la diapositiva...Para editar.]
• Nada – Las instantáneas son copias exactas de la base de datos fuente.
• Usted ha creado la base de datos de instantáneas en una partición FAT32.
• Todas las páginas en la base de datos fuente han sido modificadas desde que se creó la base de datos de instantáneas.
• La base de datos fuente es de sólo lectura.
RepasoRepasoInstantáneas de la base de datos
Observa que sus archivos de base de datos de instantáneas son aproximadamente del mismo tamaño que los archivos de la base de datos fuente. ¿Qué significa esto?
1. Nada – Las instantáneas son copias exactas de la base de datos fuente.2. Usted ha creado la base de datos de instantáneas en una partición FAT32.3. Todas las páginas en la base de datos fuente han sido modificadas desde que se creó la base de datos de instantáneas.4. La base de datos fuente es de sólo lectura.
Consulta: Desea revertir una base de Consulta: Desea revertir una base de datos al estado en el que se encontraba...datos al estado en el que se encontraba...
• [Consulta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar propiedades de la diapositiva...Para editar.]
• Respaldar la instantánea de la base de datos, y luego restaurar la base de datos fuente desde el respaldo.
• Soltar todas las tablas en la base de datos fuente. Generar una secuencia de comandos para todos los objetos en la instantánea de la base, ejecutarla. Copiar los datos de la instantánea a la base de datos.
• Restaurar la base de datos fuente desde la instantánea de la base.
• Separar la instantánea de la base de datos. Eliminar la base de datos fuente. Readjuntar la instantánea de la base de datos, cambiando su nombre.
RepasoRepasoInstantáneas de la base de datos
Desea revertir una base de datos de regreso al estado en el que se encontraba cuando creó una instantánea de la base de datos. ¿Qué debe hacer?1. Respaldar la instantánea de la base de datos, y luego restaurar la base
de datos fuente desde el respaldo.
2. Soltar todas las tablas en la base de datos fuente. Generar una secuencia de comandos para todos los objetos en la instantánea de la base, ejecutarla. Copiar los datos de la instantánea a la base de datos.
3. Restaurar la base de datos fuente desde la instantánea de la base.
4. Separar la instantánea de la base de datos. Eliminar la base de datos fuente. Readjuntar la instantánea de la base de datos, cambiando su nombre.
Agenda
• Repaso• Aislamiento de instantáneas• Instantáneas de la base de datos• Vistas dinámicas de administración
Vistas dinámicas de administraciónReseña de las vistas dinámicas de administración• Vistas y funciones del sistema• Proporcionan acceso a los datos dinámicos de diagnóstico (no
persistentes)• La convención es sys.dm_meaningful_name
SELECT session_id, login_name, host_name, program_nameFROM sys.dm_exec_sessions
SELECT IndexType, Depth, AvgFragmentationFROM sys.dm_db_index_physical_stats('Production.Product', 'AK_Product_Name', NULL, NULL)
SELECT session_id, login_name, host_name, program_nameFROM sys.dm_exec_sessions
SELECT IndexType, Depth, AvgFragmentationFROM sys.dm_db_index_physical_stats('Production.Product', 'AK_Product_Name', NULL, NULL)
Vistas dinámicas de administraciónVistas dinámicas de administración - Aislamiento• Vistas dinámicas de administración para bloqueos y operaciones
• sys.dm_tran_locks• sys.dm_tran_active_transactions• sys.dm_tran_database_transactions• sys.dm_tran_session_transactions
• Funciones dinámicas de administración para el aislamiento de instantáneas• sys.dm_tran_active_snapshot_database_transactions()• sys.dm_tran_current_snapshot()• sys.dm_tran_current_transaction()• sys.dm_tran_top_version_generators()• sys.dm_tran_transactions_snapshot()• sys.dm_tran_version_store()
Vistas dinámicas de administración
Utilizar vistas dinámicas de administración para supervisar bloqueos y aislamientos
demodemo
Consulta: Las vistas dinámicas de Consulta: Las vistas dinámicas de administración se crearon con el objetivo administración se crearon con el objetivo de reemplazar t...de reemplazar t...• [Consulta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar
propiedades de la diapositiva...Para editar.]
• Verdadero• Falso
RepasoRepasoVistas dinámicas de administración
Las vistas dinámicas de administración tienen la intención de reemplazar las vistas de metadatos estáticos de versiones anteriores de SQL Server.
1. Verdadero
2. Falso
Consulta: Desea encontrar detalles de los Consulta: Desea encontrar detalles de los bloqueos actuales en una base de datos...bloqueos actuales en una base de datos...• [Consulta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar
propiedades de la diapositiva...Para editar.]
• sys.dm_tran_locks• sys.dm_tran_active_transactions• sys.dm_tran_current_transaction()• sys.dm_tran_version_store()
RepasoRepasoVistas dinámicas de administración
Desea encontrar detalles de los bloqueos actuales en una base de datos. ¿Cuál vista dinámica de administración debe consultar?1. sys.dm_tran_locks2. sys.dm_tran_active_transactions3. sys.dm_tran_current_transaction()4. sys.dm_tran_version_store()
Resumen de la sesión
• Utilice el aislamiento de instantáneas para minimizar los bloqueos• Utilice las instantáneas de la base de datos para informes de datos punto en el tiempo y de
sólo lectura para reducir la contención• Supervise los bloqueos y las operaciones con vistas dinámicas de administración
Pasos a seguir
Información del producto SQL Server 2005:http://www.microsoft.com/sql/2005/default.asp
Actualice sus habilidades de administración de bases de datos a SQL Server 2005:http://www.microsoft.com/learning/syllabi/en-us/2733afinal.mspx
Difusión por el Web de SQL Server 2005 en MSDN:http://msdn.microsoft.com/sql/2005/2005Webcasts/default.aspx
www.microsoft.com/technet/tntx-xx
Para mayores informes…
• Visite TechNet en www.microsoft.com/technet• Para obtener información adicional sobre los libros, cursos y
otros recursos de la comunidad que respalden esta sesión visite
Serie de las difusiones por el Web: SQL Server 2005 – ¡Prepárese!
¡Lunes, 9:00 A.M. hora del Pacífico durante 10 semanas!
del 21 de marzo al 18 de mayo, 2005
Microsoft SQL Server 2005 está en camino, e incluirá mejoras importantes en el rendimiento, disponibilidad, seguridad y el conjunto más poderoso y flexible de herramientas de productividad DBA que hayamos entregado jamás. Al utilizar presentaciones interactivas y demos en vivo del producto, lo guiaremos a través de todas las funciones y mejoras principales integradas en SQL Server 2005 para darle un gran inicio en sus planes de integrar estos beneficios en su organización.
Bono: ¡Asista a una difusión por el Web en esta serie y envíe una evaluación, recibirá una copia de la versión más reciente de la versión en desarrollo del software de SQL Server 2005 en CD! Además, ¡asista a cualquier difusión por el Web en vivo de Microsoft durante junio y podrá ganar un Centro de medios portátil!
http://www.microsoft.com/seminar/events/series/technetsqlserver2005.mspxhttp://www.microsoft.com/seminar/events/series/technetsqlserver2005.mspx
Top Related