我有一个大型的SELECT查询,在WHERE子句中,我有类似的东西:
WHERE isnull(RCTL.day_id, '') = isnull(@Pday_id, isnull(RCTL.day_id, ''))
RCTL.day_id上的ISNULL()正在导致巨大的性能瓶颈。我一直在网上阅读我需要在表上为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)