Contrôle du mécanisme de verrouillage pour l'importation en bloc
Mis à jour : 5 décembre 2005
La commande bcp, les instructions BULK INSERT et INSERT ... SELECT * FROM OPENROWSET(BULK...) vous permettent de préciser que la table doit être verrouillée lors d'une opération d'importation en bloc.
Lorsque vous spécifiez un verrouillage de table, un verrou au niveau de la table, pour la mise à jour en bloc, est appliqué pour toute la durée de l'opération d'importation en bloc. Le verrouillage de table peut améliorer les performances de l'opération d'importation en bloc par la réduction du temps pendant lequel le verrou est maintenu sur la table.
Si le verrouillage de table n'est pas utilisé, des verrous au niveau des lignes sont utilisés par défaut, à moins que l'option table lock on bulk load soit définie sur on. En définissant l'option table lock on bulk load à l'aide de sp_tableoption, vous définissez également le mécanisme de verrouillage d'une table pendant toute la durée de l'opération d'importation en bloc.
Verrou de table lors de l'importation en bloc | Comportement du verrouillage de table |
---|---|
Off (Inactif) |
Utilisation de verrous au niveau des lignes |
On (Actif) |
Utilisation d'un verrou au niveau de la table |
Si le verrouillage de table est spécifié, le paramétrage par défaut de la table défini à l'aide de sp_tableoption est ignoré pendant toute la durée de l'opération d'importation en bloc.
Remarque : |
---|
Il n'est pas nécessaire d'utiliser le verrouillage de table pour importer des données en bloc dans une table à partir de plusieurs clients en parallèle, mais cela peut améliorer les performances. |
Qualificateurs des commandes
Le tableau suivant récapitule les qualificateurs utilisés pour spécifier le verrouillage de table dans les commandes d'importation en bloc.
Commande | Qualificateur | Type de qualificateur |
---|---|---|
bcp |
-h"TABLOCK" |
Indicateur |
BULK INSERT |
TABLOCK |
Argument |
INSERT ... SELECT * FROM OPENROWSET(BULK...) |
WITH(TABLOCK) |
Indicateur de table |
Remarque : |
---|
Dans SQL Server 2005, la spécification de TABLOCK sur une table avec un index cluster empêche l'importation en bloc de données en parallèle. Si vous souhaitez effectuer une importation parallèle en bloc, n'utilisez pas TABLOCK. Pour plus d'informations sur le chargement en bloc en parallèle, consultez Recommandations pour l'utilisation de l'importation en bloc. |
Voir aussi
Concepts
Verrouillage du moteur de base de données
Autres ressources
Utilitaire bcp
BULK INSERT (Transact-SQL)
OPENROWSET (Transact-SQL)
sp_tableoption (Transact-SQL)