En SQL Server 2005/2008, ¿cómo puedo saber si el aislamiento de instantáneas está activado? Sé cómo activarlo, pero no puedo encontrar el encantamiento para que Google me diga cómo consultar el estado de la opción de aislamiento de instantáneas.
En SQL Server 2005/2008, ¿cómo puedo saber si el aislamiento de instantáneas está activado? Sé cómo activarlo, pero no puedo encontrar el encantamiento para que Google me diga cómo consultar el estado de la opción de aislamiento de instantáneas.
Respuestas:
haga clic derecho en el directorio de bases de datos en el explorador de objetos e inicie powershell. escriba:
get-childitem|select name, snapshotisolationstate
y presione regresar
Powershell, ¿en serio? ¿Qué tiene de malo el T-SQL de moda?
sys.databases es lo que quieres. Tiene columnas de descripción legible por humanos como snapshot_isolation_state_desc
SELECT snapshot_isolation_state_desc from sys.databases
where name='adventureworks'
Ampliando la respuesta de nicks desde arriba.
Lo siguiente devolverá información sobre todas sus bases de datos
select name
, s.snapshot_isolation_state
, snapshot_isolation_state_desc
, is_read_committed_snapshot_on
, recovery_model
, recovery_model_desc
, collation_name
from sys.databases s
O usando el código T-SQL:
SELECT
'Current Isolation State:' [ ],
CASE is_read_committed_snapshot_on
WHEN 1 THEN 'ON' ELSE 'OFF'
END AS [Read Committed Snapsot State]
FROM sys.databases
WHERE name = 'MyDatabaseName'
Cómo probar si el nivel de aislamiento de la transacción de instantánea está habilitado
Para probar si el nivel de aislamiento de la transacción de instantánea está habilitado, siga estos pasos:
- Inicie el Analizador de SQL Server.
- Cree una nueva traza para conectarse al origen de datos que especificó en el proyecto de Analysis Services.
- En el cuadro de diálogo Propiedades de seguimiento , haga clic en la pestaña Selección de eventos .
- En la columna TransactionID, haga clic para seleccionar las casillas de verificación en la fila para el evento SQL: BatchCompleted y en la fila para el evento SQL: BatchStarting.
Nota Para mostrar la columna TransactionID, haga clic para seleccionar la casilla de verificación Mostrar todas las columnas .
- Haga clic en Ejecutar para iniciar el seguimiento.
En Business Intelligence Development Studio, procese el proyecto de Analysis Services.
En SQL Server Profiler, busque los eventos SQL: BatchCompleted y los eventos SQL: BatchStarting que tienen el mismo valor en la columna TransactionID. Normalmente, estos eventos contienen la instrucción SELECT en la columna TextData. Para estos eventos, obtenga la ID de sesión en la columna SPID.
Para conectarse a la fuente de datos, inicie SQL Server Management Studio.
Cree una nueva consulta y luego ejecute la siguiente instrucción Transact-SQL.
seleccione session_id, Transaction_Isolation_Level de sys.dm_exec_sessions donde session_id =
Nota En esta declaración, es un marcador de posición para la ID de sesión que obtuvo en el paso 7.
- En la pestaña Resultados , observe el valor en la columna Transaction_Isolation_Level. Este valor indica el nivel de aislamiento de transacción que está utilizando en el proyecto de Analysis Services. Cuando el nivel de aislamiento de la transacción de instantánea está habilitado, el valor en la columna Transaction_Isolation_Level es 5.
La siguiente tabla muestra los valores en la columna Transaction_Isolation_Level y los niveles de aislamiento de transacción correspondientes.