Activar read_committed_snapshot en MS SQL Server
Se recomiendo activar para la base de datos de Thuban en el motor MS SQL Server el isolation level read_committed_snapshot. Activando a este modo se garantiza reducir a 0 o cercano a 0 los lockeos de transacciones que puedan ocurrir en la base de datos producto de:
Alta demanda
Picos de demanda (ráfagas)
Procesos mal diseñados
Agentes de integración externos que utilicen la base de Thuban y puedan generar colisiones con la operación del producto.
Para ello hay que primero verificar si este modo no se encuentra actualmente activo corriendo el siguiente query:
SELECT is_read_committed_snapshot_on, snapshot_isolation_state_desc,snapshot_isolation_state FROM sys.databases WHERE name='NOMBRE_BD'
Se debe reemplazar NOMBRE_DB por el nombre de la base de datos en cuestión.
Si el resultado es como este:
Entonces se encuentra desactivado, caso contrario, si es como este:
Entonces estará activado y no se deberá hacer nada.
En caso de estar desactivado y querer activarlo hay que realizar los siguientes pasos:
Bajar el/los servicios de Thuban que estén utilizando la base de datos.
Si luego de bajar los Thuban, continúan existiendo conexiones a la base de datos activas, las mismas deberán ser cerradas (Ver Activity Monitor de SQL Server Management Studio)
Ejecutar las siguientes sentencias en orden y de a una a la vez:
ALTER DATABASE "NOMBRE_BD" SET allow_snapshot_isolation ON
ALTER DATABASE "NOMBRE_BD" SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE "NOMBRE_BD" SET read_committed_snapshot ON
ALTER DATABASE "NOMBRE_BD" SET MULTI_USER
En todos los casos se debe reemplazar “NOMBRE_DB” por el nombre de la base a la cuál se le quiere activar este isolation level.
Luego de ejecutar las sentencias del punto 3, volver a ejecutar la query de validación para verificar que haya quedado activado.
En este momento ya se pueden volver a iniciar los servicios de Thuban y continuar utilizándolo como siempre.
Para más información sobre este modo de SQL Server, su compatibilidad y funcionamiento interno sugerimos leer el siguiente articulo: