Achieving Greater Concurrency by IM5lOy

VIEWS: 2 PAGES: 50

									Difusión por el Web de SQL Server
2005
Parte 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
• Familiaridad con Transact-SQL
• Familiaridad con los conceptos de bloqueo de
  la base de datos y aislamiento




  Nivel 200
Agenda
•   Repaso
•   Aislamiento de instantáneas
•   Instantáneas de la base de datos
•   Vistas dinámicas de administración
Repaso
Flujo 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
Repaso
SQL 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
Repaso
Asesor 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
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.
Repaso
Flujo 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
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.
Repaso
SQL 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
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.
Repaso
Asesor 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áneas
Descripció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áneas
Utilizando READ_COMMITTED_SNAPSHOT
• Seleccione la opción de la base de datos
ALTER DATABASE AdventureWorks SET READ_COMMITTED_SNAPSHOT ON

• 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
Aislamiento de instantáneas
Utilizando ALLOW_SNAPSHOT_ISOLATION
• Establecer la opción de la base de datos
ALTER DATABASE AdventureWorks SET ALLOW_SNAPSHOT_ISOLATION ON

• Establezca el nivel de aislamiento para que la sesión
  realice instantáneas
          SET TRANSACTION ISOLATION LEVEL SNAPSHOT


• Actualice los conflictos detectados automáticamente
  – Se eliminó la operación y surgió la excepción
  – Evita el escenario “actualización pérdida”
Aislamiento de instantáneas
Comparación de los niveles de aislamiento
de instantáneas
                   Instantánea comprometida
                                                        Aislamiento de instantánea
                          para lectura
  Opción de
  base de         READ_COMMITTED_SNAPSHOT             ALLOW_SNAPSHOT_ISOLATION
  datos
  Nivel de
                  READ COMMITTED
  aislamiento                                         SNAPSHOT
                  (Predeterminado)
  de la sesión

  Lectura de la   Información comprometida antes de   Información comprometida antes de la
  versión         la instrucción                      operación

  Detección de
               Ninguno                                Automático
  conflictos
demo
Aislamiento de instantáneas
   Utilizar el nivel predeterminado de
    aislamiento READ COMMITTED
   Utilizar READ_COMMITTED_SNAPSHOT
   Utilizar ALLOW_SNAPSHOT_ISOLATION
Aislamiento de instantáneas
Consideraciones 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
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.
Repaso
Aislamiento 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
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.
Repaso
Aislamiento 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 datos
Descripció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 datos
Cómo funcionan las instantáneas de la
base de datos
          BD Fuente     FB Instantánea
                                         SELECCIONAR …
Instantáneas de la base de datos
Cómo funcionan las instantáneas de la
base de datos
                BD Fuente                        BD Instantánea

 ACTUALIZAR …                                                     SELECCIONAR …




                            Copiar al escribir
Instantáneas de la base de datos
Cómo funcionan las instantáneas de la
base de datos
                BD Fuente                        BD Instantánea

 ACTUALIZAR …                                                     SELECCIONAR …

                                                                  SELECCIONAR …




                            Copiar al escribir
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 datos
Administrar instantáneas de la base de datos
• Crear una instantánea de la base de datos
   CREATE DATABASE AdventureWorks_Snapshot_Q1
   ON (NAME = AdventureWorks_Data,
       FILENAME = 'D:\Data\AWSSQ1_data.mdf')
   AS SNAPSHOT OF AdventureWorks

• Revertir a una instantánea de la base de datos
   RESTORE DATABASE AdventureWorks
   FROM DATABASE_SNAPSHOT = 'AdventureWorks_Snapshot_Q1'

• Eliminar una instantánea de la base de datos
   DROP DATABASE AdventureWorks_Snapshot_Q1
demo
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
Instantáneas de la base de datos
Consideraciones 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
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.
Repaso
Instantá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
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.
Repaso
Instantá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ón
Reseñ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_name
 FROM sys.dm_exec_sessions

 SELECT IndexType, Depth, AvgFragmentation
 FROM sys.dm_db_index_physical_stats('Production.Product',
                                     'AK_Product_Name',
                                     NULL, NULL)
Vistas dinámicas de administración
Vistas 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()
demo
Vistas dinámicas de administración
   Utilizar vistas dinámicas de administración para
    supervisar bloqueos y aislamientos
Consulta: Las vistas dinámicas de
administración se crearon con el objetivo
de reemplazar t...
• [Consulta de opción múltiple de PlaceWare. Utilice PlaceWare > Editar
  propiedades de la diapositiva...Para editar.]
• Verdadero
• Falso
Repaso
Vistas 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
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()
Repaso
Vistas 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_locks
2.   sys.dm_tran_active_transactions
3.   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
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




www.microsoft.com/technet/tntx-xx
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.mspx

								
To top