Minimice El Bloqueo En Sql Server

Páginas: 12 (2865 palabras) Publicado: 20 de mayo de 2012
Minimice el bloqueo en SQL Server
Cherié Warren
 Resumen:
* Por qué se produce la extensión de bloqueo
* Cómo evitar el bloqueo innecesario
* Optimización de las consultas
* Supervisión del impacto del bloqueo sobre el rendimiento

Aunque el bloqueo es necesario para admitir actividades simultáneas de lectura y escritura en una base de datos, también puede afectar de formanegativa al rendimiento del sistema, a veces de forma sutil. En este artículo, voy a describir cómo optimizar las bases de datos de SQL Server 2005 y SQL Server 2008 para minimizar el bloqueo y cómo supervisar el sistema para entender mejor cómo repercute el bloqueo sobre el rendimiento.
Bloqueo y extensión
SQL Server® elige el grano de bloqueo más apropiado en función del número de registrosafectados y de la actividad simultánea que tiene lugar en el sistema. De forma predeterminada, SQL Server selecciona el grano de bloqueo más pequeño posible, eligiendo sólo granos de bloqueo más gruesos si se puede usar la memoria del sistema de manera más eficaz. SQL Server extenderá un bloqueo si la extensión beneficia al rendimiento general del sistema. Como muestra la Figura 1, las extensiones seproducen cuando el número de bloqueos en una detección concreta excede de 5.000 o cuando la memoria destinada por el sistema a los bloqueos supera la capacidad disponible:

Figura 1 Condiciones que causan la extensión de bloqueo (Hacer clic en la imagen para ampliarla)
* 24 por ciento de la memoria no AWE usada por el motor de base de datos si la configuración de bloqueos es 0
* 40 porciento de la memoria no AWE usada por el motor de base de datos si la configuración de bloqueos es distinta de 0
Si se produce una extensión, siempre es a un bloqueo de tabla.

Cómo evitar el bloqueo innecesario
El bloqueo puede ocurrir en cualquier grano de bloqueo, pero la exposición a bloqueos aumenta si se producen extensiones. La extensión de bloqueo puede indicar la ineficacia del diseño,el código o la configuración de su aplicación.
Ceñirse a los aspectos fundamentales del diseño de base de datos (como usar un esquema normalizado con claves estrechas y evitar las operaciones de datos masivas en sistemas de transacciones) es importante para evitar bloqueos. Si no se siguen estos principios (como apartar el sistema de informes del sistema de transacciones o procesar fuentes dedatos fuera del horario de oficina), será difícil ajustar el sistema.
La indización puede ser un factor clave en relación con el número de bloqueos que son necesarios para tener acceso a los datos. Un índice puede reducir el número de registros a los que accede una consulta mediante la reducción del número de búsquedas internas que debe realizar el motor de base de datos. Por ejemplo, al seleccionaruna sola fila de una tabla en una columna que no está indizada, cada fila de la tabla necesita ser bloqueada temporalmente hasta que se identifique el registro deseado. Por contra, si la columna estuviera indizada, sólo se necesitaría un bloqueo.
Tanto SQL Server 2005 como SQL Server 2008 contienen vistas de administración dinámica (sys.dm_db_missing_index_group_stats,sys.dm_db_missing_index_groups, sys.dm_db_missing_index_details) que revelan tablas y columnas que se beneficiarían de los índices en función de las estadísticas de uso acumuladas.
La fragmentación también puede verse implicada en los problemas de rendimiento, en tanto que el motor de base de datos puede necesitar acceso a más páginas que en condiciones normales. Además, una estadística incorrecta puede hacer que eloptimizador de consultas elija un plan menos eficaz.
Tenga presente que aunque los índices aceleran el acceso a datos, también pueden ralentizar la modificación de datos porque además de que los datos subyacentes necesitan cambiar, los índices también necesitan actualizarse. La vista de administración dinámica sys.dm_db_index_usage_stats destaca con qué frecuencia se usan los índices. Un ejemplo...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Bloqueos en sql server
  • Sql server
  • Sql server
  • sql server
  • Sql Server
  • Sql server
  • SQL Server
  • SQL Server

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS