[解决办法] 没别的,就是升级硬件和软件! [解决办法] 把id in(55,66,77……)改成 in=55 or in=66 or in=77 试试 [解决办法] 把in里面的数字,放入临时表试下 [解决办法] 不应该吧,才几十万条记录而已就不行了????升级硬件吧 [解决办法] 用楼上说的,把数字先放入临时表,然后用 select a.* From A a inner join 临时表 b on a.id=b.id
应该可以快2倍以上。 [解决办法] 几十万条数据,执行查询 CPU会20%多? [解决办法]
[解决办法] 有两种方法你可以试试, 1.把in里面的东西放到临时表,再用表关联速度会大幅提升; 2.把in替换成 union all 速度也会快很多,不过用union all sql 会比较长 [解决办法] 查查id上的索引是否被去掉啦。。。 [解决办法] 对看看索引 [解决办法] 都说是索引啊? [解决办法] 先把(55,66,77.。。。)存放到一张表,临时表或实际表都可以 ,为B表,则语句可写成
select * from A a where exists(select 1 from B b where a.id=b.id)
记住,不要用in ,用exists,才是ok的! [解决办法] --in的内容 declare @count varchar(2000) set @count='111,2222,111,2222' select * A where id in( select substring (value,charindex(',',value)+1,len(value)) as sales from dbo.SplitToTable(@count, ',')) [解决办法] 17楼正解