欢迎来到天天文库
浏览记录
ID:24925174
大小:53.00 KB
页数:3页
时间:2018-11-17
《三种sql分页法效率分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、三种SQL分页法效率分析>>教育资源库 表中主键必须为标识列,[ID]intIDENTITY(1,1) 1.分页方案一:(利用NotIn和SELECTTOP分页) 语句形式:SELECTTOP10*FROMTestTableTestTable ORDERBYid))ORDERBYIDSELECTTOP页大小*FROMTestTable表 ORDERBYid))ORDERBYID 2.分页方案二:(利用ID大于多少和SELECTTOP分页) 语句形式: SELECTTOP10*FROMTes
2、tTableAX(id) FROM(SELECTTOP20id FROMTestTable ORDERBYid)AST))ORDERBYIDSELECTTOP页大小*FROMTestTableAX(id) FROM(SELECTTOP页大小*页数id FROM表 ORDERBYid)AST))ORDERBYID 3.分页方案三:(利用SQL的游标存储过程分页)create procedureSqlPagersqlstrnvarchar(400
3、0),--查询字符串currentpageint,--第N页pagesizeint--每页行数assetnocountondeclareP1int,--P1是游标的idrowcountintexecsp_cursoropenP1output,sqlstr,scrollopt=1,ccopt=1,rowcount=rowcountoutputselectceiling(1.0*rowcount/pagesize)as总页数--,rowcountas总行数,currentpageas当前页setcurrentpag
4、e=(currentpage-1)*pagesize+1execsp_cursorfetchP1,16,currentpage,pagesizeexecsp_cursorcloseP1setnocountoff 其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。 建议优化的时候,加上主键和索引,查询效率会提高。 通过SQL查询分析器,显示比较:我的结论是: 分页方案二:(利用ID大于多少和SELECTTOP分页)效率最高,需要拼接SQL语句 分页方案一:(利用NotIn和SELE
5、CTTOP分页)效率次之,需要拼接SQL语句 分页方案三:(利用SQL的游标存储过程分页)效率最差,但是最为通用>>>>这篇文章来自..,。
此文档下载收益归作者所有