Partager via


Niveaux d'isolement

Lorsque le verrouillage est utilisé en tant que mécanisme de contrôle des transactions, il permet de résoudre les problèmes d'accès concurrentiels. Il permet à toutes les transactions d'être exécutées indépendamment les unes des autres, bien que plusieurs transactions puissent être exécutées à tout moment. Le niveau selon lequel une transaction est préparée à accepter des données incohérentes est appelé niveau d'isolement. Un niveau d'isolement plus élevé offre davantage de protection contre l'incohérence des données, mais restreint les possibilités d'accès concurrentiels.

Dans Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition), le niveau d'isolement requis par une application détermine le comportement de verrouillage utilisé par SQL Server Compact Edition.

SQL Server Compact Edition prend en charge les niveaux d'isolement suivants (du plus bas au plus élevé) :

  • Lecture validée (paramètre par défaut de SQL Server Compact Edition)
  • Lecture renouvelée
  • Sérialisable (les transactions sont complètement isolées les unes des autres)

Lorsque le niveau d'isolement augmente, les données sont davantage protégées contre les incohérences. En revanche, la simultanéité des transactions diminue et l'accès multi-utilisateur est affecté.

Remarque :
SQL Server Compact Edition garantit qu'une transaction ne peut pas lire les données non validées d'une autre transaction (lecture erronée). Cette situation est obtenue à l'aide d'un mécanisme de version de page qui permet aux utilisateurs de lire des données sans demander des verrous S sur les données. Cela offre un accès simultané exceptionnel pour lire les opérations (SELECT).

Niveaux d'isolement et problèmes d'accès concurrentiels

Le tableau ci-dessous montre les niveaux d'isolement et les problèmes d'accès concurrentiels qu'ils entraînent.

Remarque :
Les problèmes d'accès concurrentiels qui peuvent se produire comprennent la dépendance non validée, les analyses incohérentes et les lectures fantôme. Pour plus d'informations sur les problèmes d'accès concurrentiels, consultez Accès concurrentiels.
Niveau d'isolement Dépendance non validée (lectures erronées) Analyses incohérentes (lectures non renouvelées) Lectures fantôme

Lecture validée

Non

Oui

Oui

Lecture renouvelée

Non

Non

Oui

Sérialisable

Non

Non

Non

Les niveaux d'isolement peuvent être définis par programme ou à l'aide de la syntaxe SQL SET TRANSACTION ISOLATION LEVEL. Pour plus d'informations, consultez Niveau d'isolement des transactions.

Voir aussi

Concepts

Transactions (SQL Server Compact Edition)
Verrouillage [SQL Server Compact Edition]
Curseurs [SQL Server Compact Edition]

Aide et information

Assistance sur SQL Server Compact Edition