У меня большой запрос SELECT, где в предложении WHERE у меня есть что-то вроде:
WHERE isnull(RCTL.day_id, '') = isnull(@Pday_id, isnull(RCTL.day_id, ''))
ISNULL () на RCTL.day_id вызывает огромные проблемы с производительностью. Я читал в Интернете, что мне нужно создать вычисляемый столбец в таблице для ISNULL (day_id, 0), а затем проиндексировать этот столбец.
Это правильный подход, и если да, то правильный ли?
alter table dbo.tc_route_control add blank_day_id as (isnull(day_id, 0))
create nonclustered index ix_test1 on dbo.tc_route_control (blank_day_id)