Maison > base de données > tutoriel mysql > Existe-t-il une alternative plus rapide aux instructions DELETE standard pour la suppression groupée dans SQL Server 2008 ?

Existe-t-il une alternative plus rapide aux instructions DELETE standard pour la suppression groupée dans SQL Server 2008 ?

Susan Sarandon
Libérer: 2025-01-03 10:29:43
original
792 Les gens l'ont consulté

Is There a Faster Alternative to Standard DELETE Statements for Bulk Deletion in SQL Server 2008?

SUPPRESSION groupée efficace dans SQL Server 2008

Dans la gestion de bases de données, le besoin d'une suppression efficace des données se pose fréquemment. Bien que SQL Server fournisse des instructions DELETE standard, elles peuvent prendre beaucoup de temps pour les grands ensembles de données. Cette question explore si SQL Server offre une alternative à Bulk Copy (bcp) pour les opérations DELETE en bloc.

Impossible d'utiliser TRUNCATE, utilisez WHERE à la place

La requête présentée demande s'il existe une solution pour la suppression en bloc dans SQL Server. Le problème est que la suppression doit être limitée par une clause WHERE, ce qui fait de TRUNCATE une option inappropriée.

Aucun équivalent de copie en bloc pour DELETE

Malheureusement, il n'y a pas d'équivalent de copie en bloc pour DELETE. copie équivalente pour les opérations DELETE dans SQL Server. Les instructions DELETE avec des clauses WHERE doivent être exécutées en tant que requêtes SQL standard.

Deletes par lots pour l'évolutivité

Pour les ensembles de données volumineux, envisagez des opérations DELETE par lots. Celles-ci impliquent de diviser l'instruction DELETE en lots plus petits, comme indiqué ci-dessous :

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

Méthode alternative pour les suppressions à pourcentage élevé

Lors de la suppression d'une grande majorité de lignes, une méthode alternative pourrait être plus efficace :

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

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