Comment puis-je accélérer les insertions groupées dans MS SQL Server à l'aide de pyodbc ?

Mary-Kate Olsen
Libérer: 2024-11-02 20:15:03
original
317 Les gens l'ont consulté

How Can I Speed Up Bulk Inserts into MS SQL Server Using pyodbc?

Comment améliorer les performances d'insertion en masse dans MS SQL Server à l'aide de pyodbc

Vous avez mentionné avoir rencontré des vitesses d'insertion lentes lorsque vous tentiez d'insérer plus de 1 300 000 lignes dans une base de données MS SQL Server utilisant pyodbc. Bien que l'itération sur des lignes individuelles pour l'insertion puisse contribuer au problème de performances, l'utilisation de techniques d'insertion en masse est une solution viable. La commande INSERT permet un chargement efficace des données en masse, à condition que le fichier de données se trouve sur la même machine que l'instance SQL Server ou dans un emplacement réseau SMB/CIFS accessible. Si cette condition est remplie, les étapes suivantes peuvent être suivies :

Créez une instruction d'insertion en masse et spécifiez la table de destination et les colonnes de données.

Utilisez pyodbc.load_bulk() pour charger les données d'un fichier ou d'un curseur dans la base de données.

  1. fast_executemany dans pyodbc
  2. Pour les scénarios où le fichier de données réside sur un client distant, le curseur# de pyodbc La fonctionnalité fast_executemany introduite dans la version 4.0.19 peut améliorer considérablement les performances d'insertion :

Activez fast_executemany en le définissant sur True sur l'objet curseur.

Utilisez Cursor#executemany() pour insérer plusieurs rangées à la fois. Cette technique peut réduire considérablement le temps d'exécution par rapport à l'itération manuelle que vous utilisez actuellement.

  1. Considérations
fast_executemany n'est pas activé par défaut.

Les données pour l'insertion groupée doivent être structurées selon le schéma de la table cible.

Assurez-vous que l'utilisateur SQL Server dispose des autorisations nécessaires pour effectuer des insertions groupées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal