ma indeks na DUE_DATE? Jeśli nie, dodaj jeden, a następnie sprawdź wydajność. Jeśli istnieje już jest, a następnie zmienić na dwóch oddzielnych sprawozdaniach
If @due_date_limit is null
Select [stuff]
From Table
Else
Select [stuff]
From Table
Where b.due_date <= @due_date_limit
jednak sprawę, że nie filtrowany (gdy @due_date_limit jest null) lub filtrowanie za pomocą < = potencjalnie mogą wrócić znaczną liczbę rekordów, które wyeliminuje każdą okazję do korzystania z indeksu i będzie wymagać pełnego skanowania tabeli. To może być to, czego doświadczasz.
SQL Server wersja? – AnthonyWJones