Maison > Article > développement back-end > Comment puis-je optimiser les opérations d'insertion en masse dans MS SQL Server à l'aide de pyodbc ?
Optimisation des opérations d'insertion en masse dans MS SQL Server à l'aide de pyodbc
Le défi de l'insertion efficace de gros volumes de données dans MS SQL Server à partir du code Python l'utilisation de pyodbc nécessite un examen attentif. Bien que l'exécution itérative d'insertions individuelles puisse sembler simple, elle peut entraîner d'importants goulots d'étranglement en termes de performances, en particulier lorsqu'il s'agit de jeux de données de plus de 1 300 000 lignes.
Une solution potentielle consiste à exploiter la commande T-SQL BULK INSERT, qui peut considérablement accélérer l’ingestion de données. Toutefois, cette approche nécessite que le fichier de données soit situé sur la même machine que l'instance SQL Server ou dans un emplacement réseau accessible au serveur. Si cette condition ne peut pas être remplie, des options alternatives doivent être explorées.
Exploration de la fonctionnalité Fast ExecuteMany de pyodbc
Pyodbc version 4.0.19 introduit une puissante technique d'optimisation des performances : Curseur# fast_executemany. En activant cette fonctionnalité, la connexion à la base de données peut exécuter plusieurs exécutions de paramètres par lots en un seul aller-retour vers le serveur.
Pour utiliser fast_executemany, ajoutez simplement la ligne suivante à votre code :
<code class="python">crsr.fast_executemany = True</code>
Ce paramètre peut améliorer considérablement la vitesse d'insertion. Lors d'un test de référence, 1 000 lignes ont été insérées dans une base de données en un peu plus d'une seconde avec fast_executemany activé, contre 22 secondes sans cette optimisation.
Optimisation de l'exécution des boucles
En plus d'utiliser fast_executemany, il existe des stratégies supplémentaires pour affiner les performances d'exécution de votre boucle.
En mettant en œuvre ces optimisations, vous pouvez considérablement accélérer le processus d'insertion de gros volumes de données dans MS SQL Server à l'aide de pyodbc.
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!