使用CASE作查询条件后,怎么速度变得很慢,应怎样解决?
Select * from vwOutHouseDsp
where iDocStatus<=100 and dDocDate>=@tdBDate and dDocDate<=@tdEDate
and (cDocType='销售发货' or cDocType='销售退货')
and WhSysCode=case when @tcWhSysCode='' then WhSysCode else @tcWhSysCode End
and ISysCode=case when @tcISysCode='' then ISysCode else @tcISysCode End
and IBSysCode=case when @tcIBSysCode='' then IBSysCode else @tcIBSysCode
以上这句在WHERE上使用CASE后查速度就变得很慢了,如果把
and WhSysCode=case when @tcWhSysCode='' then WhSysCode else @tcWhSysCode End
and ISysCode=case when @tcISysCode='' then ISysCode else @tcISysCode End
and IBSysCode=case when @tcIBSysCode='' then IBSysCode else @tcIBSysCode
这几句去掉,速度就正常了,怎么会这样呢?
另外,如果不用CASE,这种情况的条件查询怎样解决比较好呢?