Это, вероятно, следует разделить на 2 отдельных запроса, если только вы на самом деле не хотите, чтобы один и тот же план выполнения полного сканирования кластеризованного индекса использовался в случае, когда @categoryid=0
и @categoryid<>0
Разделив на два отдельных запроса, вы потенциально сможете разрешить те, в которых @categoryid
не равен нулю, при поиске по индексу, а не при полном сканировании.
Если таблица маленькая или @categoryid
не очень избирательна, это может не быть проблемой.