条件参数可多选(也可能为空)情况下如何优化大表查询速度?

alex_cjh alex_cjh 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
查询一个表的时候比较慢

A表大概有1亿条的数据

有一个条件参数@CODE

可能是空,也可能是1234, 也可能是1234|4567|1111|1112......这个样子的
现在的做法是查询时在where加下面的条件
(ISNULL(@CODE,'')='' OR CHARINDEX('|'+A.CODE+'|','|'+@CODE+'|')>0)

主要因为要查询为空的情况,每次查询会耗时1-2分钟
因为会有好几个条件,所以一个存储过程就会耗时8分钟以上了,比较难接受。

用等号或者把判断时候为空去掉,查询会快很多...但是不符合实际需求

本人算是SQL新手,还请大家指教一下。
...全文
评论 6
收藏 已收藏
分享
返回顶部
alex_cjh
MS-SQL Server 34,876 成员 254,635 内容