首页 新闻 会员 周边 捐助

逗号分隔字符串字段查询性能

0
悬赏园豆:5 [已关闭问题]

数据库中有个用户编号序列字段UserIdList,nvarchar型,如"12,45,79",

查询是不是包含某个用户可以用 where ','+UserIdList+',' like '%,'+userid+',%'

有没有更佳性能的方法?

谢谢!

kenzhang的主页 kenzhang | 初学一级 | 园豆:165
提问于:2009-07-03 10:55
< >
分享
其他回答(1)
0

这个你可以在数据库里面做一个简单的测试就可以了!

新建查询,并把上面两条sql复制到 其中

可能通过菜单中的"查询"---“显示估计的查询计划”比较两条sql

或 "查询"---“包括实际的执行计划”进行sql语句的性能评估 (这里要分开两次执行才行)

具体的看http://www.cnblogs.com/yinwanglive/archive/2009/04/13/1434826.html

不过有点可以肯定的,like '%的操作会锁定记录,有可能出现死锁的情况,所以尽可能的不要在大量文本比较的时候用like,像这个地方我建议还是用in比较好!不需要使用like,而且你这个地方用like,还可能出现错误,就是当记录里11,1,11111这样的时候,如果你like 11或1会是怎么样的结果呢!?

chen eric | 园豆:4 (初学一级) | 2009-07-03 14:30
0

感觉在数据库设计的就存在问题,一般不推荐使用双%号查询

阿新 | 园豆:84 (初学一级) | 2009-07-04 10:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册