Jeg havde det samme problem som den originale plakat, men det citerede svar løste ikke problemet for mig. Forespørgslen kørte stadig rigtig langsomt fra en lagret procedure.
Jeg fandt et andet svar her "Parameter Sniffing", tak Omnibuzz. Det koger ned til at bruge "lokale variabler" i dine lagrede procedureforespørgsler, men læs originalen for mere forståelse, det er en fantastisk opskrivning. f.eks.
Langsom vej:
CREATE PROCEDURE GetOrderForCustomers(@CustID varchar(20))
AS
BEGIN
SELECT *
FROM orders
WHERE customerid = @CustID
END
Hurtig måde:
CREATE PROCEDURE GetOrderForCustomersWithoutPS(@CustID varchar(20))
AS
BEGIN
DECLARE @LocCustID varchar(20)
SET @LocCustID = @CustID
SELECT *
FROM orders
WHERE customerid = @LocCustID
END
Håber, at dette hjælper en anden, fordi jeg ved at gøre dette reducerede min udførelsestid fra 5+ minutter til omkring 6-7 sekunder.