Nous avons une énorme base de données de production, sa taille est d'environ 300 Go. Existe-t-il une approche pour améliorer les performances d'une requête de suppression? À l'heure actuelle, la vitesse de suppression est comprise entre 1 et 10 000 par minute, c'est très lent pour nous.
sql-server
query-performance
Communauté
la source
la source
Réponses:
Si vous essayez de supprimer un grand nombre de lignes dans une seule instruction, il est probable que vous attendiez l'activité du journal. Afin que vous puissiez:
TRUNCATE
ouDROP
/CREATE
.SELECT INTO
pour placer les données que vous souhaitez conserver dans un autre tableau, puisTRUNCATE
, reculez la petite partie. (Ou supprimez simplement l'ancienne table, renommez la nouvelle et réappliquez les contraintes / autorisations, etc.)CHECKPOINT
effacer le journal au lieu de prendre des sauvegardes de journal, mais vous devez être sûr de le réinitialiser et de prendre une nouvelle sauvegarde complète pour relancer la chaîne de journaux .la source
Il y a un indice, mais quelle version utilisez-vous? S'agit-il d'une édition entreprise? En tous cas:
Ajoutez des détails, lorsque vous travaillez avec une grande base de données, il n'y a pas une seule réponse valide.
la source
Vous devriez essayer de les supprimer morceau par morceau, probablement en supprimant en boucle, chaque itération de suppression est sa propre transaction, puis en effaçant le journal à la fin de chaque itération de boucle.
En outre, vous devrez trouver le nombre que vous allez utiliser comme valeur dans le bloc pour supprimer les enregistrements. Cela nécessite un test approfondi, ce serait mieux si vous pouvez d'abord tester la valeur de bloc dans UAT.
Sur la façon de procéder, vous renvoie à Briser les opérations de suppression de grande taille en morceaux
la source
la suppression peut être lente si la grande table a une clé étrangère récursive.
si c'est le cas, trouvez le moment opportun, désactivez les services dépendants, désactivez la clé étrangère récursive, effectuez une suppression massive, puis restaurez la clé étrangère.
la source
Ajout de quelques points supplémentaires ...
tablock
option.Pour obtenir plus d'aide, publiez la requête que vous utilisez, les informations sur la table et toutes les informations de blocage.
la source