Oracle
 sql >> Base de données >  >> RDS >> Oracle

Stratégie pour améliorer les performances d'Oracle DELETE

Supprimer des données est un sacré boulot pour la base de données. Il doit créer des images avant, mettre à jour les index, écrire des journaux redo et supprimer les données. C'est un processus lent. Si vous pouvez avoir une fenêtre pour effectuer cette tâche, le plus simple et le plus rapide est de créer de nouvelles tables contenant les données souhaitées. Supprimez les anciennes tables et renommez les nouvelles. Cela nécessite un certain travail de configuration, ce qui est évident mais tout à fait possible. Une étape moins drastique consiste à supprimer les index avant la suppression. Mon vote irait pour CTAS (Create Table As Select from) et construirait les nouvelles tables. Un joli schéma de partitionnement serait certainement utile, peut-être que dans la prochaine version, Oracle pourra combiner le partitionnement par intervalle et par référence. Ce serait très bien d'avoir.

La désactivation de la journalisation .... ne peut pas être effectuée pour les suppressions, mais CTAS peut utiliser nologging. Faites une sauvegarde lorsque vous êtes prêt et assurez-vous de transférer les fichiers de données vers la base de données de secours, si vous en avez une.