Le débogage d'une application qui interroge SQL Server 05 ne peut pas modifier la requête mais doit optimiser les choses.TSQL NOT EXISTS Pourquoi cette requête est-elle si lente?
Exécuter toutes les sélections séparément sont rapides < 1sec, par exemple: sélectionnez * à partir d'acscard, sélectionnez id de l'employé ... Une fois réunies, cela prend 50 secondes.
Vaut-il mieux définir les champs accesscardid sans intérêt sur null ou sur '' lors de l'utilisation d'EXISTS?
SELECT * FROM ACSCard
WHERE NOT EXISTS
(SELECT Id FROM Employee
WHERE Employee.AccessCardId = ACSCard.acs_card_number)
AND NOT EXISTS
(SELECT Id FROM Visit
WHERE Visit.AccessCardId = ACSCard.acs_card_number)
ORDER by acs_card_id
Cela devrait faire un commentaire sur la question originale ... Pas une réponse. –
Indexes résolu le problème - ne peut pas croire qu'ils n'étaient pas là depuis le début! – Mobs