web-dev-qa-db-fra.com

Comment savoir si l'isolement de cliché est activé?

Dans SQL Server 2005/2008, comment savoir si l'isolement de capture instantanée est activé? Je sais comment pour l'activer, mais je ne trouve pas l'incantation pour que Google me dise comment interroger l'état de l'option d'isolement de l'instantané.

35
Samuel Jack

faites un clic droit sur le répertoire des bases de données dans l'Explorateur d'objets et lancez PowerShell. type:
get-childitem|select name, snapshotisolationstate
et appuyez sur retour

6
Fatherjack

Powershell, vraiment? qu'est-ce qui ne va pas avec le bon vieux T-SQL?

sys.databases est ce que vous voulez. Il a des colonnes de description lisibles par l'homme comme snapshot_isolation_state_desc

SELECT snapshot_isolation_state_desc from sys.databases 
where name='adventureworks'
70
Nick Kavadias

Extension de la réponse des pseudos par le haut ..

Ce qui suit renverra des informations sur toutes vos bases de données

    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
15
jcrawfor74

Ou en utilisant du code 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'
3
Arthur

Comment tester si le niveau d'isolement de transaction de snapshot est activé

Pour tester si le niveau d'isolement de transaction de capture instantanée est activé, procédez comme suit:

  1. Démarrez SQL Server Profiler.
  2. Créez une nouvelle trace pour vous connecter à la source de données que vous avez spécifiée dans le projet Analysis Services.
  3. Dans la boîte de dialogue Propriétés de trace , cliquez sur l'onglet Sélection d'événements .
  4. Dans la colonne TransactionID, cliquez pour sélectionner les cases à cocher dans la ligne pour l'événement SQL: BatchCompleted et dans la ligne pour l'événement SQL: BatchStarting.

Remarque Pour afficher la colonne TransactionID, cliquez pour sélectionner la case Afficher toutes les colonnes .

  1. Cliquez sur Exécuter pour démarrer la trace.
  2. Dans Business Intelligence Development Studio, traitez le projet Analysis Services.

  3. Dans SQL Server Profiler, recherchez les événements SQL: BatchCompleted et les événements SQL: BatchStarting qui ont la même valeur dans la colonne TransactionID. En règle générale, ces événements contiennent l'instruction SELECT dans la colonne TextData. Pour ces événements, obtenez l'ID de session dans la colonne SPID.

  4. Pour vous connecter à la source de données, démarrez SQL Server Management Studio.

  5. Créez une nouvelle requête, puis exécutez l'instruction Transact-SQL suivante.

    sélectionnez session_id, Transaction_Isolation_Level dans sys.dm_exec_sessions où session_id =

Remarque Dans cette instruction, est un espace réservé pour l'ID de session que vous avez obtenu à l'étape 7.

  1. Sous l'onglet Résultats , notez la valeur dans la colonne Transaction_Isolation_Level. Cette valeur indique le niveau d'isolement des transactions que vous utilisez dans le projet Analysis Services. Lorsque le niveau d'isolement de transaction de capture instantanée est activé, la valeur dans la colonne Transaction_Isolation_Level est 5.

Le tableau suivant montre les valeurs de la colonne Transaction_Isolation_Level et les niveaux d'isolement de transaction correspondants.

table showing transaction isolation levels

https://support.Microsoft.com/en-us/help/919160/how-to-enable-the-snapshot-transaction-isolation-level-in-sql-server-2

0
E.V.I.L.