500k rekordów po 32 zapytania, sporo.
Mam pomysł na nieco inne zapytanie, zdecydowanie bardziej złożone w budowie, ale powinno być nieco sprawniejsze:
Baza:
Kod: Zaznacz cały
Select * from
(Select * from table where conditions_1)
where conditions_2
Kod:
Kod: Zaznacz cały
SELECT * from
( Select * from
( Select * from
( Select * from
...
( Select * from table where par_32 between between @p_32* 0.8 and @p_32*1.2 )
where
...
where par_3 between @p_3* 0.8 and @p_3*1.2)
where par_2 between @p_2* 0.8 and @p_2*1.2)
where par_1 between @p_1* 0.8 and @p_1*1.2
Czyli najpierw wybieramy wszystkie rekordy spełniające warunek 32, potem z tych wybranych wszystkie spełniające warunek 31, potem 30, itd. Nie jest to eleganckie w zapisie, ale być może jest szybsze (brak możliwości przetestowania).