Ich hatte das gleiche Problem wie das Originalposter, aber die zitierte Antwort hat das Problem für mich nicht gelöst. Die Abfrage lief immer noch sehr langsam von einer gespeicherten Prozedur.
Ich habe hier eine andere Antwort gefunden "Parameter Sniffing", Danke Omnibuzz. Läuft auf die Verwendung von "lokalen Variablen" in Ihren Abfragen für gespeicherte Prozeduren hinaus, aber lesen Sie das Original zum besseren Verständnis, es ist eine großartige Beschreibung. zB
Langsamer Weg:
CREATE PROCEDURE GetOrderForCustomers(@CustID varchar(20))
AS
BEGIN
SELECT *
FROM orders
WHERE customerid = @CustID
END
Schneller Weg:
CREATE PROCEDURE GetOrderForCustomersWithoutPS(@CustID varchar(20))
AS
BEGIN
DECLARE @LocCustID varchar(20)
SET @LocCustID = @CustID
SELECT *
FROM orders
WHERE customerid = @LocCustID
END
Hoffe, das hilft jemand anderem, dadurch hat sich meine Ausführungszeit von 5+ Minuten auf etwa 6-7 Sekunden reduziert.