帮我优化一句sql去除NOT IN语句 40drupe]

发布时间:2016-12-10 14:51:32 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"帮我优化一句sql去除NOT IN语句 40drupe]",主要涉及到帮我优化一句sql去除NOT IN语句 40drupe]方面的内容,对于帮我优化一句sql去除NOT IN语句 40drupe]感兴趣的同学可以参考一下。

EXEC('SELECT TOP [email protected]+' * FROM [webcontent] WHERE enable=1 AND ID NOT IN(SELECT TOP [email protected]+' ID FROM [webcontent] WHERE enable=1 ORDER BY [we_time] DESC) ORDER BY [we_time] DESC'); 语句如上,可以正常使用,可是NOT IN对数据查询不好,请高手帮我去除,代换,提高查询速度。 用以上的NOT IN查询 82万条数据时就变得很慢了。 谢谢!

不知道你是需要升序,还是倒序? exec('SELECT TOP ' + cast(@count - @index as varchar) + ' ID FROM [webcontent] WHERE enable=1 ORDER BY [we_time] desc)' exec('SELECT TOP ' + cast(@count - @index as varchar) + ' ID FROM [webcontent] WHERE enable=1 ORDER BY [we_time])' exec('SELECT TOP ' + cast(@count - @index + 1 as varchar) + ' ID FROM [webcontent] WHERE enable=1 ORDER BY [we_time] desc)' exec('SELECT TOP ' + cast(@count - @index + 1 as varchar) + ' ID FROM [webcontent] WHERE enable=1 ORDER BY [we_time])'

如果你是需要剔除ID,好象只能按照你一楼的方法.

--try: EXEC('select * from (SELECT TOP '+ltrim(@count)+' * FROM (select top '+ltrim(@[email protected])+' * from webcontent where enable=1 order by we_time desc)a order by we_time)a order by we_time desc') 另外给id,we_time字段加上索引。。

EXEC( 'select    *   from  (    SELECT         TOP '+ltrim(@count)+' *     FROM        (select            top '+ltrim(@[email protected])+' *         from           webcontent         where           enable=1          order by            we_time desc)a   order by we_time)a  order by we_time desc')

看你想要表达的意思应该是:查找一个记录集第M条到第N条记录。 你可以用你的语句结合,Exception关键字来实现 SELECT TOP M FROM TABLE WHERE .... ORDER BY .... EXCEPTION SELECT TOP N FROM TABLE WHERE .... ORDER BY ....

谢谢各位,用4楼的测试是 3.58秒,用我以前的NOT IN是2.11秒,速度还是不行,不知道那儿错了点。还有别的办法吗?

5楼说得对啊,我要的就是分页一样的效果,从指定的"N"行数据开始取“M"行数据. 因为这个数据库超大,每天还在大量的增加。现在的速度就很慢了,要做优化处理。

谢谢1,3楼的建议,用索引的方法没办法,我的数据经常大量删除增加的,对不上号的。

我看你的sql应该是分页语句,用rownumber不行么?

上一篇:怎样使用SQL Azure? 100WolfMvP]
下一篇:DB2是什么缩写?究竟有什么好处,教教我,知道的给点资料,谢谢, 50dl_job]

相关文章

相关评论