Bonjour à tous,
J'ai un souci avec une requête qui demande beaucoup de ressources à s'exécuter.
Voici un exemple de ce que j'essaye de faire.
Admettons on a une table
- t_clients (id)
- t_commandes (id, client_id, date_validation)
Et on veut supprimer les commandes dont la date de validation est avant le 1er janvier 2015, et supprimer les clients qui n'ont pas de commande après.
La seconde requête exploite à fond le fichier de log, jusqu'à ce que l'OS manifeste qu'il n'y a bientôt plus d'espace disque et ensuite c'est SQL Serveur qui lance une erreur "impossible d'agrandir le fichier de log".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DELETE FROM t_commandes WHERE t_commandes.date_validation < '2015-01-01'; DELETE FROM t_clients WHERE NOT EXISTS (SELECT * FROM t_commandes WHERE t_commandes .client_id = t_clients.id);
Est-ce qu'il n'y a pas moyen de contourner ce "WHERE NOT EXISTS" ? On peut utiliser des procédures, des tables temporaires etc.
Merci beaucoup par avance,
A bientôt
Partager