select * from table where orgid in(1,2,3,4,5,6,7。。。。。。。。)中关于in语句的执行效率?帮忙啊!

不老书生 2005-05-28 04:24:28
in(1,2。。。。),括号里的条件的多少对sql 语句的执行效率影响如何?我是用asp开发的!

我的感觉是不是多到一定程度效率就会明显低了?大概在多少范围内对效率的影响能够承受啊?
...全文
222 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxmcxm 2005-05-29
  • 打赏
  • 举报
回复
其实,对几个到几百个,效率应该不会有多大影响,其它对查询来说,如果有索引,一般是二分查询或多分查询,如果无索引,电脑只能逐条数.对一具体的查询,可自己算算电脑最多要数多少条记录,再估算出查询时间.
loverpyh 2005-05-28
  • 打赏
  • 举报
回复
在orgid上建立索引
Frewin 2005-05-28
  • 打赏
  • 举报
回复
为什么不将(10,1101,1102,1103,12,13,16。。)放在一个表里,这样方便程序的维护,而且可以改成这样
select * from table where ischecked='0' and Exists(Select 1 From b where orgid =table.orgid)
hsj20041004 2005-05-28
  • 打赏
  • 举报
回复
是的,sql的条件语句是按照顺序进行检索的
如果符合条件ischecked='0' 的记录很少的话
是不受什么影响的
不老书生 2005-05-28
  • 打赏
  • 举报
回复
对于select * from table where ischecked='0' and orgid in(1,2,3,4,5,6,7。。。。。。。。)

这样的语句,sql server 是不是先找到符合ischecked='0' 条件的语句,然后再去匹配in里面的数据,还是别的什么检索方式啊?
不老书生 2005-05-28
  • 打赏
  • 举报
回复
paoluo(一天到晚游泳的鱼):你好!

不是连续的,实际的可能是in(10,1101,1102,1103,12,13,16。。),没有规律
paoluo 2005-05-28
  • 打赏
  • 举报
回复
如果是连续的,你可以这么写
select * from table where ischecked='0' and orgid Between 1 And 7
不老书生 2005-05-28
  • 打赏
  • 举报
回复
对了
我在in语句前面先加了一个限定条件
select * from table where ischecked='0' and orgid in(1,2,3,4,5,6,7。。。。。。。。)

一般符合ischecked='0'的数据到不会太多,这样影响会不会小些?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧