J'ai eu le même problème que l'affiche originale mais la réponse citée n'a pas résolu le problème pour moi. La requête s'exécutait toujours très lentement à partir d'une procédure stockée.
J'ai trouvé une autre réponse ici "Parameter Sniffing", Merci Omnibuzz. Se résume à utiliser des "variables locales" dans vos requêtes de procédure stockée, mais lisez l'original pour plus de compréhension, c'est une excellente rédaction. ex.
Voie lente :
CREATE PROCEDURE GetOrderForCustomers(@CustID varchar(20))
AS
BEGIN
SELECT *
FROM orders
WHERE customerid = @CustID
END
Mode rapide :
CREATE PROCEDURE GetOrderForCustomersWithoutPS(@CustID varchar(20))
AS
BEGIN
DECLARE @LocCustID varchar(20)
SET @LocCustID = @CustID
SELECT *
FROM orders
WHERE customerid = @LocCustID
END
J'espère que cela aidera quelqu'un d'autre, cela a réduit mon temps d'exécution de plus de 5 minutes à environ 6-7 secondes.