测试环境 硬件:CPU 酷睿双核T 内存:2G 软件:Windows server + sql server OK,我们首先创建一数据库:data_Test,并在此数据库中创建一表:tb_TestTable 然后我们在数据表中插入条数据: 我首先写了五个常用存储过程: 1,利用select top 和select not in进行分页,具体代码如下: 2,利用select top 和 select max(列键) 3,利用select top和中间变量--此方法因网上有人说效果最佳,所以贴出来一同测试 4,利用Row_number() 此方法为sql server 中新的方法,利用Row_number()给数据行加上索引 5,利用临时表及Row_number OK,至此,存储过程创建完毕,我们分别在每页条数据的情况下在第2页,第页,第页,第页,第页进行测试,耗时单位:ms 每页测试5次取其平均值 存过 第2页耗时 第页耗时 第页耗时 第页耗时 第页耗时 效率排行 1用not in 0ms ms ms ms ms 3 2用select max 5ms ms ms ms ms 1 3中间变量 ms ms ms ms ms 5 4row_number 0ms 0ms ms ms ms 2 4临时表 ms ms ms ms ms 4 测试结果显示:select max >row_number>not in>临时表>中间变量 于是我对效率最高的select max方法用2分法进行了扩展,代码取自互联网,我修改了ASC排序时取不到值的BUG,测试结果: 2分法 ms ms ms ms ms 1* 从测试结果来看,使用2分法确实可以提高效率并使效率更为稳定,我又增加了第页的测试,用时仅ms,效果相当的不错! 下面是2分法使用select max的代码,已相当完善。 执行示例:exec proc_paged_2part_selectMax 'tb_testTable','ID,userName,userPWD,userEmail',,,'ID',0,null,'ID',0 这种测试只在单机进行,并且没有在实际开发WEB项目中分页测试,测试项也比较单一,所以不够全面系统,但从其效率相比上,我们可以在数据库分页算法上进行有效的控制。
推荐整理分享大数据量分页存储过程效率测试附测试代码与结果(大数据量分页查询),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:大量数据查询分页优化,大量数据查询分页优化,大数据量的分页解决方法,大数据量分页缓存设计,大数据量的分页解决方法,大数据量分页缓存设计,大数据量分页缓存设计,大数据量分页缓存设计,内容如对您有帮助,希望把文章链接给更多的朋友!
sqlserver 千万数量级分页存储过程代码 setANSI_NULLSONsetQUOTED_IDENTIFIERONgoCreatePROCEDURE[dbo].[SP_Pagination]/**//******************************************************************千万数量级分页存储过程*********************
监控 log文件大小的存储过程 1、监控log文件大小超过g的server和dbcreateproceduredb_sendmail_mssqllogsizeasdeclare@sqlvarchar(max),@servernamevarchar(),@pxint;DECLARE@xmlNVARCHAR(MAX)DECLARE@bodyNVARCHAR(MAX)declare@
SQLServer中汇总功能的使用GROUPING,ROLLUP和CUBE 第一次看到这样的SQL语句,看不懂,其中用到了下面的不常用的聚集函数:GROUPING用于汇总数据用的运算符:ROLLUPSELECTCASEGROUPING(o.customerid)WHEN0THENo.customeridELSE'(