sql s'exécute rapidement dans ssms lente dans asp.net

J'ai eu ce problème pour un couple de semaines maintenant. Le problème est que la requête prend 4-5 minutes pour s'exécuter sur le site et pas plus de 2 ou 3 secondes à s'exécuter dans ssms. J'ai aussi trouvé qu'une fois que j'ai un changement à cette requête, comme l'ajout de la customerId variable, il va commencer à courir vite sur la page web, mais dès le lendemain, il est lent à nouveau. La requête en question est celui-ci:

DECLARE @customerID INT
SET @customerID = @CustID
DECLARE @MyTable table(
Iden int NOT NULL IDENTITY(1,1),
ProductID int)

INSERT INTO @MyTable(ProductID)
SELECT P.ProductID FROM Product P WITH (NOLOCK)
left join Compunix_ProductMMY cpmmy with (nolock) on p.ProductID = cpmmy.ProductID
left join Compunix_CustomerMMY ccmmy with (nolock) on ccmmy.mmyid = cpmmy.mmyid
WHERE P.Deleted=0 AND P.Published=1 and (ccmmy.customerid = @customerID OR cpmmy.productid IS NULL)

SELECT c.Name, c.SeName, c.CategoryID
FROM Category c WITH (NOLOCK) 
JOIN ProductCategory PC With (NOLOCK) ON C.CategoryID = PC.CategoryID
JOIN @MyTable MT ON PC.ProductID=MT.ProductID
WHERE C.Published = 1
GROUP BY c.Name, c.SeName, c.CategoryID
ORDER BY c.Name

J'ai la même requête en cours d'exécution sur 2 autres site qui fonctionnent tout aussi bien. La seule différence entre les sites est qu'ils sont exécutés sur différentes bases de données et la lenteur du site a un peu plus que le double de produits (54000 produits) par rapport aux 2 autres. L'ensemble des trois sites et de leurs bases de données sont hébergés sur la même machine.

Vous devez marquer une réponse. Probablement vous avez eu la détection des paramètres questions

OriginalL'auteur Ben | 2012-04-16