这就是最快地存储过程?
以下是号称最快的存储过程
Set Rowcount 100000
declare @id varchar(10)
select @ID=id from tbcj Order by id
print @id
Set Rowcount 10
Select * From tbcj Where id> =@ID Order By id
Set Rowcount 0
执行用了3秒
以下这个简单的,用了1秒不到
select top 10 * from tbcj
where id not in (select top 100000 id from tbcj)
我搞不懂了,是我的测试方法有问题还是被人忽悠了?
是不是select @ID=id from tbcj Order by id执行了太多次赋值导致的?
------解决方案--------------------select @ID=id from tbcj Order by id
赋值 了很多次
not in 也不是很快,用not exists 应会更快
------解决方案--------------------不要用set rowcount,数据量多了会比较慢
SELECT TOP 10 * FROM tbcj
WHERE id > (SELECT MAX(id) FROM (SELECT TOP 100000 id FROM tbcj ORDER BY id) AS tblTEMP)
ORDER BY id