Bonjour à tous,
Je viens de tomber sur un pb ... que j'ai résolu en bricolant. Si quelqu'un a une solution plus "professionel" je suis preneur.
Une clause TOP (n) est beaucoup + longue qu'une clause TOP (n) PERCENT !! En tous cas sur ma requete (voir + bas). J'ai donc été obligé de faire en sorte de calculer le pourcentage du nombre que je souhaite retourner...
En regardant un peu les plans d'executions entre les 2 requetes je me suis aperçu que sur le TOP PERCENT il parrallélisent les sous requête, sur le TOP "nb de ligne" ce n'est pas le cas.
Ma config : SQL Server 2008 dev edtion 32 bit . 4Go RAM
Merci d'avance pour vos retours.
Franck
Voici une requete qui met environs 5 sec
SELECT TOP (10) 200764, ID
FROM ANONYM.dbo.vBASE_ANONYM
WHERE (TERRITOIRE IN (SELECT VAL1
FROM REQUETE_FILTRE_VALEUR
WHERE N_REQUETE_FILTRE=1865 AND COMMENTAIRE='TERRITOIRE')
OR
REGION IN (SELECT VAL1
FROM REQUETE_FILTRE_VALEUR
WHERE N_REQUETE_FILTRE=1865 AND COMMENTAIRE='REGION')
)
la même mais avec un TOP en pourcentage .... moins d'une seconde
SELECT TOP (0.088) 200764, ID
FROM ANONYM.dbo.vBASE_ANONYM
WHERE (TERRITOIRE IN (SELECT VAL1
FROM REQUETE_FILTRE_VALEUR
WHERE N_REQUETE_FILTRE=1865 AND COMMENTAIRE='TERRITOIRE')
OR
REGION IN (SELECT VAL1
FROM REQUETE_FILTRE_VALEUR
WHERE N_REQUETE_FILTRE=1865 AND COMMENTAIRE='REGION')
)