Share via


Types d’accès concurrentiels

Pour résoudre le problème de la concurrence réduite dans les curseurs, ODBC expose quatre types différents de concurrence de curseur :

  • En lecture seule , le curseur peut lire des données, mais ne peut pas mettre à jour ou supprimer des données. Il s’agit du type d’accès concurrentiel par défaut. Bien que le SGBD verrouille des lignes pour appliquer les niveaux d’isolation Reproductible Lecture et Serializable, il peut utiliser des verrous de lecture au lieu de verrous d’écriture. Cela entraîne une concurrence plus élevée, car d’autres transactions peuvent au moins lire les données.

  • Le verrouillage du curseur utilise le niveau de verrouillage le plus bas nécessaire pour vous assurer qu’il peut mettre à jour ou supprimer des lignes dans le jeu de résultats. Cela entraîne généralement des niveaux d’accès concurrentiel très faibles, en particulier aux niveaux d’isolation des transactions reproductibles en lecture et en sérialisable.

  • Concurrence optimiste à l’aide des versions de lignes et accès concurrentiel optimiste à l’aide des valeurs Le curseur utilise une concurrence optimiste : il met à jour ou supprime les lignes uniquement si elles n’ont pas changé depuis leur dernière lecture. Pour détecter les modifications, il compare les versions de ligne ou les valeurs. Il n’existe aucune garantie que le curseur sera en mesure de mettre à jour ou de supprimer une ligne, mais que la concurrence est beaucoup plus élevée que lors du verrouillage. Pour plus d’informations, consultez la section suivante, Accès concurrentiel optimiste.

Une application spécifie le type d’accès concurrentiel qu’elle souhaite utiliser avec l’attribut d’instruction SQL_ATTR_CONCURRENCY. Pour déterminer les types pris en charge, il appelle SQLGetInfo avec l’option SQL_SCROLL_CONCURRENCY.