Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Error "Tiempo de espera mientras se espera el bloqueo temporal" al ejecutar
En este artículo se presenta un problema en el que recibe un mensaje de error al intentar ejecutar la DBCC CHECKDB
instrucción en una base de datos que contiene una tabla grande en SQL Server.
Versión del producto original: SQL Server
Número de KB original: 919155
Síntomas
Considere el caso siguiente:
- Tiene una base de datos que contiene una o varias tablas muy grandes.
- Las tablas suelen tener un tamaño de varios cientos de gigabytes (GB).
- Ejecute la
DBCC CHECKDB
instrucción en la base de datos en SQL Server.
En este escenario, se escribe un mensaje de error similar al siguiente en el registro de errores de SQL Server:
<DateTime> spid65 Timeout se produjo mientras se esperaba el bloqueo temporal: clase "DBCC_MULTIOBJECT_SCANNER", id 000000002201DED0, tipo 4, Task 0x000000000C80BEB8 : 6, waittime 300, flags 0xa, propietario de la tarea 0x0000000005A0AC58. Esperando.
Sin embargo, la DBCC CHECKDB
instrucción se completará correctamente. Puede omitir el mensaje de error de forma segura.
Causa
Este problema se produce porque se produce un tiempo de espera cuando SQL Server atraviesa las cadenas del mapa de asignación de índices (IAM). El bloqueo temporal que se menciona en el mensaje de error se usa para evitar que otros subprocesos accedan a una lista. Esta lista se está compilando mediante un subproceso que atraviesa las cadenas de IAM para todos los índices asociados a una tabla determinada. Si la tabla es lo suficientemente grande como para recorrer estas cadenas de IAM tarda más de 5 minutos, puede experimentar el tiempo de espera de bloqueo temporal. Además, este problema suele ser peor cuando la E/S del disco es lenta.
Estado
Este comportamiento es por diseño.