Měl jsem stejný problém jako původní plakát, ale citovaná odpověď mi problém nevyřešila. Dotaz stále běžel opravdu pomalu z uložené procedury.
Našel jsem zde další odpověď "Parameter Sniffing", Díky Omnibuzz. Zmenšuje se na použití "místních proměnných" v dotazech uložených procedur, ale pro lepší pochopení si přečtěte originál, je to skvělé zápis. např.
Pomalu:
CREATE PROCEDURE GetOrderForCustomers(@CustID varchar(20))
AS
BEGIN
SELECT *
FROM orders
WHERE customerid = @CustID
END
Rychlý způsob:
CREATE PROCEDURE GetOrderForCustomersWithoutPS(@CustID varchar(20))
AS
BEGIN
DECLARE @LocCustID varchar(20)
SET @LocCustID = @CustID
SELECT *
FROM orders
WHERE customerid = @LocCustID
END
Doufám, že to pomůže někomu dalšímu, tím se mi zkrátila doba provádění z 5+ minut na asi 6-7 sekund.