Ciao a tutti, ho la seguente query:

codice:
SELECT 
        [idListino]
        ,[fidFornitore]
        ,[fidPaese]
        ,[NomeProdotto]
        ,[Atc]
        ,[PrincipioAttivo]
        ,[Brand]
        ,[PackSize]
        ,[CodificaEU]
        ,[Ean]
        ,[Prezzo]
        ,[DataListino] 
        ,[Paesi].Paese as Paese
        ,[Fornitori].RagioneSociale as RagioneSociale                                      
        ,'Nessun Prodotto Ita corrispondente.'
        FROM Listini
        INNER JOIN Fornitori ON fidFornitore=idFornitore
        INNER JOIN Paesi ON fidPaese=idPaese
        WHERE DataListino IN (SELECT max(DataListino) AS DATA_MAX FROM Listini WHERE fidFornitore=@myidFornitore AND fidPaese=@myidPaese GROUP BY fidFornitore, fidPaese)                
        AND (CodificaEU IS NOT NULL AND CodificaEU<>'') OR (Ean IS NOT NULL AND Ean<>'')             
        AND fidFornitore=@myidFornitore AND fidPaese=@myidPaese
        ORDER BY NomeProdotto;
Però per essere eseguita ci mette circa un minuto ed è un pò troppo.
Sicuramente il problema è nella prima istruzione WHERE dove cerco in base al max(DataListino). Come posso ottimizzare questa query?
Grzazie a tutti.