J'ai une requête qui tourne pour toujours. Je suis nouveau en matière de DBA. Je voudrais savoir quelle serait la première chose à faire face à de tels problèmes? J'ai regardé le plan d'exécution La table a seulement 1 index non groupé sur ClassCode. La raison pour laquelle j'utilise tellement de ClassCode, car dans le paramètre de rapport SSRS @ClassCode par défaut, ce sont des valeurs multiples, qui sont plus de 200 d'entre elles.Comment puis-je améliorer les performances des requêtes?
SELECT PolicyNumber
FROM tblClassCodesPlazaCommercial
WHERE PolicyNumber NOT IN (
SELECT PolicyNumber
FROM tblClassCodesPlazaCommercial
WHERE ClassCode IN (
33489,31439,41894,68189,,01199,68528,67139,68128,739889,
33428,5561,68428,01484,5281,67227,01184,50199,23528,33283,03228,
50499,41594,50427,5181,31484,03199,6481,68239,50439,68489,36127,
50472,67128,23149,33439,03149,5452,23189,50228,01428,69183,50527,
67499,739189,50159,31183,33499,01283,33128,50239,6451,33159,
21199,67272,67127,69427,5451,23239,67199,67449,67189,01599,40228,
50184,5551,33299,7398,40179,40128,50139,7381,33199,50497,23428,33129,
738299,67149,40184,23128,69199,68499,50299,31449,40497,68169,67197,
5191,67259,5252,03489,67459,21299,5262,01181,03428,31483,68183,68228,
31199,40484,738199,03499,31499,40189,7382,67439,21527,50449,01427,
68199,5453,50528,36228,50259,68299,50227,23459,33528,40199,40427,
21289,42594,5283,34489,5251,21228,50197
)
)
Avez-vous besoin d'un 0 supplémentaire dans le cas? Je m'attendrais à ce que les valeurs qui ne sont pas dans la liste soient NULL, ce qui ne vaut pas 0. Je peux me tromper. De toute façon, bien meilleure idée que OP. – scsimon
@scsimon - Fait simple: l'agrégat 'Count' ne comptera pas les valeurs' NULL'. Si j'ajoute '0' dans la partie' else', le compte le considèrera comme une valeur et le comptera aussi alors la logique ira pour lancer –
Merci. Il n'y a pas de 'NULL'' ClassCode'. Donc je devrais le laisser 'puis 1 fin'. Correct? – Oleg