首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

这就是最快地存储过程?该怎么解决

2012-01-14 
这就是最快地存储过程?以下是号称最快的存储过程SetRowcount100000declare@idvarchar(10)select@IDidfrom

这就是最快地存储过程?
以下是号称最快的存储过程
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

热点排行
Bad Request.