Maison > base de données > tutoriel mysql > Comment puis-je optimiser les suppressions par lots dans SQL Server 2008 ?

Comment puis-je optimiser les suppressions par lots dans SQL Server 2008 ?

Barbara Streisand
Libérer: 2025-01-03 02:43:38
original
251 Les gens l'ont consulté

How Can I Optimize Batch Deletes in SQL Server 2008?

Optimisation de la suppression par lots dans SQL Server 2008

Dans SQL Server, les opérations en masse telles que la copie en bloc (bcp) fournissent des techniques efficaces de manipulation des données. Cependant, la question se pose de savoir si une fonctionnalité de suppression groupée similaire est disponible.

Requête :

Existe-t-il une solution de suppression groupée dans SQL Server ?

TRUNCATE ne peut pas être utilisé pour une suppression sélective, ce qui nécessite des clauses WHERE. Existe-t-il une alternative à bcp pour supprimer des données en masse ?

Réponse :

Non, SQL Server ne propose pas d'opération de suppression en masse spécialisée. Cependant, il existe plusieurs approches pour optimiser les suppressions par lots :

Suppression par lots à l'aide de @@ROWCOUNT :

SELECT 'Starting' --sets @@ROWCOUNT
WHILE @@ROWCOUNT <> 0
    DELETE TOP (xxx) MyTable WHERE ...
Copier après la connexion

Cette requête exécute les instructions DELETE par lots de « xxx » lignes jusqu'à ce qu'il ne reste plus de lignes.

Tronquer et insérer Méthode :

SELECT col1, col2, ... INTO #Holdingtable
           FROM MyTable WHERE ..opposite condition..
TRUNCATE TABLE MyTable
INSERT MyTable (col1, col2, ...)
           SELECT col1, col2, ... FROM #Holdingtable
Copier après la connexion

Cette technique est efficace lorsqu'un pourcentage élevé de lignes doit être supprimé. Il crée une table temporaire avec les lignes à conserver, tronque la table d'origine et réinsère les lignes conservées dans la table.

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