Hej, mam duży problem z optymalizacją . Potrzebuję dać select jako listę do warunku. Mam tabele dwuelementową @kody. Powiedzmy że składa się z jednej kolumny - 'id' i dwóch wierszy o wartościach 'A', 'B'.
Jeżeli wpisuję ('A','B') na sztywno do zapytania to kręci się w niecałą sekundę.
Jeżeli odpalam sam select, ( (select id COLLATE Polish_CS_AS from @kody)) który jest później listą zapytań, też śmiga szybciutko.
Ale jeżeli select jest już użyty jako argument to zaptytanie kręci się ponad pół godziny i nadal nie ma wyniku..
Czy ma ktoś pomysł co tu jest nie tak? Jak to zoptymalizować ? Co tak zamula ?
DECLARE @kody TABLE (id VARCHAR(10) );
INSERT INTO @kody (id) VALUES('A' )
INSERT INTO @kody (id) VALUES('B' )
SELECT top 5
produkt,
kategoria,
id,
SUM(a) AS suma_a
FROM BAZA.dbo.Tabela
WHERE 1=1
AND [KOD] IN (select id COLLATE Polish_CS_AS from @kody)
GROUP BY
produkt,
kategoria,
id