Я создаю хранимую процедуру для поиска некоторых данных в моей базе данных в соответствии с некоторыми критериями, введенными пользователем.
Мой SQL-код выглядит так:
Create Procedure mySearchProc
(
@IDCriteria bigint=null,
...
@MaxDateCriteria datetime=null
)
as
select Col1,...,Coln from MyTable
where (@IDCriteria is null or ID=@IDCriteria)
...
and (@MaxDateCriteria is null or Date<@MaxDateCriteria)
Редактировать : у меня около 20 возможных параметров, и каждая комбинация из n ненулевых параметров может иметь место.
Можно ли написать код такого типа с точки зрения производительности? (Я использую MS SQL Server 2008)
Будет ли генерация кода SQL, содержащего только необходимые выражения where, значительно быстрее?