Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
SQL Server 2005 a introduit un nouveau niveau d’isolation « instantané » destiné à améliorer la concurrence pour les applications OLTP (Online Transaction Processing). Dans les versions antérieures de SQL Server, la concurrence était basée uniquement sur le verrouillage, ce qui peut entraîner des problèmes de blocage et de blocage pour certaines applications. L’isolation des captures instantanées dépend des améliorations apportées au contrôle de version des lignes et vise à améliorer les performances en évitant les scénarios de blocage de l’enregistreur de lecture.
Les transactions qui démarrent sous isolation d’instantané lisent un instantané de base de données à partir du moment où la transaction démarre. L’un des résultats est que les curseurs de serveurs dynamiques et statiques, lorsqu’ils sont ouverts dans un contexte de transaction d’instantané, se comportent beaucoup comme les curseurs statiques ouverts dans des transactions sérialisables. Toutefois, lorsque les curseurs sont ouverts sous les verrous de niveau d’isolation de capture instantanée ne sont pas pris, ce qui peut réduire le blocage sur le serveur.
Fournisseur OLE DB SQL Server Native Client
Le fournisseur OLE DB SQL Server Native Client offre des améliorations qui tirent parti de l’isolation d’instantané introduite dans SQL Server 2005. Ces améliorations incluent les modifications apportées aux jeux de propriétés DBPROPSET_DATASOURCEINFO et DBPROPSET_SESSION.
DBPROPSET_DATASOURCEINFO
Le jeu de propriétés DBPROPSET_DATASOURCEINFO a été modifié pour indiquer que le niveau d’isolation d’instantané est pris en charge par l’ajout de la valeur DBPROPVAL_TI_SNAPSHOT utilisée dans la propriété DBPROP_SUPPORTEDTXNISOLEVELS. Cette nouvelle valeur indique que le niveau d’isolation d’instantané est pris en charge si le contrôle de version a été activé ou non sur la base de données. Voici une liste des valeurs DBPROP_SUPPORTEDTXNISOLEVELS :
| ID de propriété | Descriptif |
|---|---|
| DBPROP_SUPPORTEDTXNISOLEVELS | Type : VT_I4 R/W : lecture seule Description : masque de bits spécifiant les niveaux d’isolation des transactions pris en charge. Combinaison de zéro ou plusieurs des éléments suivants : - DBPROPVAL_TI_CHAOS - DBPROPVAL_TI_READUNCOMMITTED - DBPROPVAL_TI_BROWSE - DBPROPVAL_TI_CURSORSTABILITY - DBPROPVAL_TI_READCOMMITTED - DBPROPVAL_TI_REPEATABLEREAD - DBPROPVAL_TI_SERIALIZABLE - DBPROPVAL_TI_ISOLATED - DBPROPVAL_TI_SNAPSHOT |
DBPROPSET_SESSION
Le jeu de propriétés DBPROPSET_SESSION a été modifié pour indiquer que le niveau d’isolation d’instantané est pris en charge par l’ajout de la valeur DBPROPVAL_TI_SNAPSHOT utilisée dans la propriété DBPROP_SESS_AUTOCOMMITISOLEVELS. Cette nouvelle valeur indique que le niveau d’isolation d’instantané est pris en charge si le contrôle de version a été activé ou non sur la base de données. Voici une liste des valeurs DBPROP_SESS_AUTOCOMMITISOLEVELS :
| ID de propriété | Descriptif |
|---|---|
| DBPROP_SESS_AUTOCOMMITISOLEVELS | Type : VT_I4 R/W : lecture seule Description : spécifie un masque de bits qui indique le niveau d’isolation des transactions en mode de validation automatique. Les valeurs qui peuvent être définies dans ce masque de bits sont identiques à celles qui peuvent être définies pour DBPROP_SUPPORTEDTXNISOLEVELS. |
Remarque
Les erreurs DB_S_ERRORSOCCURRED ou DB_E_ERRORSOCCURRED se produisent si DBPROPVAL_TI_SNAPSHOT est défini lors de l’utilisation de versions de SQL Server antérieures à SQL Server 2005.
Pour plus d’informations sur la prise en charge de l’isolation des instantanés dans les transactions, consultez Prise en charge des transactions locales.
Pilote ODBC SQL Server Native Client
Le pilote ODBC SQL Server Native Client prend en charge l’isolation des captures instantanées, bien que des améliorations apportées aux fonctions SQLSetConnectAttr et SQLGetInfo .
SQLSetConnectAttr
La fonction SQLSetConnectAttr prend désormais en charge l’utilisation de l’attribut SQL_COPT_SS_TXN_ISOLATION. Définir SQL_COPT_SS_TXN_ISOLATION sur SQL_TXN_SS_SNAPSHOT indique que la transaction aura lieu sous le niveau d’isolation de l’instantané.
SQLGetInfo
La fonction SQLGetInfo prend désormais en charge la valeur SQL_TXN_SS_SNAPSHOT qui a été ajoutée au type d’informations SQL_TXN_ISOLATION_OPTION.
Pour plus d’informations sur la prise en charge de l’isolation des instantanés dans les transactions, consultez Le niveau d’isolation des transactions de curseur.
Voir aussi
Fonctionnalités de SQL Server Native Client
Propriétés et comportements des ensembles de lignes