如下查询语句如何优化

tuziwang 2008-02-25 11:25:56
我有一个查询语句select comid,comname from comunion where comid in ('1','2','4','7',......,'11221');将近有5000个元素,执行速度非常慢,高手们能教教我如何优化吗?
...全文
54 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
junshanhudazhaxi 2008-02-25
如果comid in ('1','2','4','7',......,'11221') 条件不经常更新的话,你可以把你上述的
查询语句的查询结果创建为一个视图,这样就不用每次都执行那个查询来获得数据了。
  • 打赏
  • 举报
回复
junshanhudazhaxi 2008-02-25
select   comid,comname   from   comunion   where   comid   in   ('1','2','4','7',......,'11221');

转换成:
select   comid,comname   from   comunion   where   comid='1'
union all select comid,comname from comunion where comid='2'
....


效率会不会高些呢?没试过。
  • 打赏
  • 举报
回复
ioRabbit 2008-02-25
建立索引
  • 打赏
  • 举报
回复
gahade 2008-02-25
表数据量有多大?大的话分割下表比较好
  • 打赏
  • 举报
回复
pt1314917 2008-02-25
在comid字段上建索引试试``
  • 打赏
  • 举报
回复
ziping 2008-02-25
in 后面的数据放到一个表里面 再做连接 或者EXISTS
  • 打赏
  • 举报
回复
xuyiquan1981 2008-02-25
这样的in 5000个元素根本就不可取,请用其他的方法。对comid加索引然后order comid
  • 打赏
  • 举报
回复
SeerMi 2008-02-25
楼上这个办法也许可行
  • 打赏
  • 举报
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-02-25 11:25
社区公告
暂无公告