Optimisation de l'importation en bloc

Mis à jour : 12 décembre 2006

Cette rubrique décrit les options d'optimisation de l'importation en bloc de données vers une table dans Microsoft SQL Server 2005 en utilisant une commande bcp, l'instruction BULK INSERT ou l'instruction INSERT ... SELECT * FROM OPENROWSET(BULK...). Pour importer ou exporter en bloc des données aussi rapidement que possible, il est important de comprendre les facteurs qui affectent les performances et les identificateurs de commande disponibles pour gérer les performances. Dans la mesure du possible, utilisez une instruction Transact-SQL pour importer en bloc les données vers SQL Server, car Transact-SQL est plus rapide que bcp.

ms190421.note(fr-fr,SQL.90).gifRemarque :
Ces méthodes sont comparées dans la section À propos des opérations d'exportation et d'importation en bloc.

L'optimisation maximale des performances d'une importation en bloc dépend des facteurs suivants :

  • Existence de contraintes, de déclencheurs ou des deux sur la table.
  • Mode de récupération utilisé par la base de données.
    Pour plus d'informations, consultez Présentation des modes de récupération.
  • Table de destination des données copiées vide ou non vide.
  • Existence d'index pour la table.
  • Définition ou non de TABLOCK.
  • Données copiées depuis un seul client ou en parallèle depuis plusieurs clients.
  • Données copiées ou non entre deux ordinateurs exécutant SQL Server.
ms190421.note(fr-fr,SQL.90).gifImportant :
Dans SQL Server 2005, les optimisations d'importation en bloc sont disponibles lorsque les déclencheurs sont activés. SQL Server 2005 utilise le contrôle des versions de ligne pour les déclencheurs et stocke les versions des lignes dans le magasin de versions de tempdb. Pour pouvoir importer en bloc un lot important d'enregistrements de données au moyen de déclencheurs, vous devrez peut-être augmenter la taille de tempdb pour tenir compte de l'impact des déclencheurs sur le magasin de versions.

Pour plus d'informations sur l'impact de ces facteurs sur l'importation en bloc, consultez Recommandations pour l'utilisation de l'importation en bloc.

Méthodes d'optimisation de l'importation en bloc

Pour accélérer l'importation en bloc des données, SQL Server fournit les méthodes suivantes :

  • Utilisation de la journalisation minimale
    Le mode de récupération simple consigne les opérations en bloc de façon minime.
    Pour une base de données en mode de restauration complète, toutes les opérations d'insertion de ligne exécutées lors de l'importation en bloc sont complètement enregistrées dans le journal des transactions. Pour les importations de données volumineuses, le journal des transactions peut se remplir rapidement. Pour les opérations d'importation en bloc, la journalisation minimale est plus efficace que la journalisation complète et réduit la possibilité pour une importation en bloc de remplir l'espace de journalisation. Pour consigner une opération d'importation en bloc sur une base de données qui utilise généralement le mode de restauration complète, vous pouvez d'abord passer la base de données en mode de récupération utilisant les journaux de transactions. Après l'importation en bloc des données, repassez en mode de restauration complète. Pour plus d'informations, consultez Considérations sur le basculement à partir du mode de restauration complète ou du mode de récupération utilisant les journaux de transactions.
    ms190421.note(fr-fr,SQL.90).gifRemarque :
    Les lignes insérées font l'objet d'une journalisation minimale si la journalisation en bloc optimisée est applicable ; sinon, les lignes insérées sont totalement insérées dans le journal des transactions. Pour plus d'informations sur les opérations d'importation en bloc et la manière d'effectuer des opérations d'importation en bloc avec une journalisation minimale, consultez Opérations journalisées minimales et Conditions requises pour une journalisation minimale dans l'importation en bloc.
  • Importation des données en parallèle depuis plusieurs clients vers une seule table
    SQL Server permet d'importer les données en bloc vers une seule table depuis plusieurs clients en parallèle. Les trois mécanismes d'importation en bloc prennent en charge l'importation parallèle des données, ce qui peut améliorer les performances des opérations d'importation.
    Pour plus d'informations, consultez Importation de données en parallèle avec un verrouillage de niveau table.
  • Utilisation de lots d'instructions
    Pour plus d'informations sur l'utilisation de lots lors de l'importation des données, et sur les identificateurs de commandes de gestion des lots, consultez Gestion de lots pour l'importation en bloc.
    ms190421.note(fr-fr,SQL.90).gifRemarque :
    L'option BULK de la clause OPENROWSET ne permet pas de contrôler la taille des lots.
  • Désactivation des déclencheurs
    La désactivation des déclencheurs peut améliorer les performances.
    Pour plus d'informations sur l'impact de l'exécution de déclencheurs sur les opérations d'importation en bloc et sur l'activation ou la désactivation des déclencheurs, consultez Contrôle de l'exécution des déclencheurs lors de l'importation de données en bloc.
  • Désactivation des contraintes
    Pour plus d'informations sur l'impact de la vérification des contraintes sur l'importation en bloc et sur l'activation ou la désactivation des contraintes CHECK et FOREIGN KEY sur une table, consultez Contôle de la vérification des contraintes par les opérations d'importation en bloc.
  • Organisation des données d'un fichier de données
    Par défaut, une opération d'importation en bloc suppose que le fichier de données n'est pas ordonné. Si la table possède un index cluster, l'utilitaire bcp et l'instruction BULK INSERT vous permettent de spécifier le mode de tri des données dans le fichier pendant l'importation en bloc. Les données du fichier de données ne doivent pas nécessairement être triées de la même manière que celles de la table. Toutefois, vous pouvez améliorer les performances de l'importation en bloc en triant les données du fichier de données et celles de la table de la même manière.
    Pour plus d'informations, consultez Contrôle de l'ordre de tri lors de l'importation de données en bloc.
    ms190421.note(fr-fr,SQL.90).gifRemarque :
    INSERT ... Les instructions SELECT * FROM OPENROWSET(BULK...) ne permettent pas de contrôler l'ordre de tri.
  • Contrôle du fonctionnement du verrouillage
    Pour plus d'informations sur la définition du fonctionnement du verrouillage lors de l'importation en bloc, consultez Contrôle du mécanisme de verrouillage pour l'importation en bloc.
  • Importation de données dans le format natif
    Pour plus d'informations, consultez Utilisation du format natif pour importer ou exporter des données et Utilisation du format natif Unicode pour importer ou exporter des données.

Voir aussi

Référence

SQL Server, objet Databases

Concepts

Importation et exportation de données en bloc

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

12 décembre 2006

Contenu modifié :
  • Mise à jour des informations sur la désactivation des contraintes pour indiquer que les contraintes CHECK et FOREIGN KEY sont activées ou désactivées en même temps.