Ik had hetzelfde probleem als de originele poster, maar het geciteerde antwoord loste het probleem voor mij niet op. De query liep nog steeds erg traag vanuit een opgeslagen procedure.
Ik vond hier nog een antwoord "Parameter Sniffing", Bedankt Omnibuzz. Komt neer op het gebruik van "lokale variabelen" in uw opgeslagen procedure-query's, maar lees het origineel voor meer begrip, het is een geweldige beschrijving. bijv.
Langzame manier:
CREATE PROCEDURE GetOrderForCustomers(@CustID varchar(20))
AS
BEGIN
SELECT *
FROM orders
WHERE customerid = @CustID
END
Snelle manier:
CREATE PROCEDURE GetOrderForCustomersWithoutPS(@CustID varchar(20))
AS
BEGIN
DECLARE @LocCustID varchar(20)
SET @LocCustID = @CustID
SELECT *
FROM orders
WHERE customerid = @LocCustID
END
Ik hoop dat dit iemand anders helpt, hierdoor verminderde mijn uitvoeringstijd van 5+ minuten tot ongeveer 6-7 seconden.