打印本文 打印本文 关闭窗口 关闭窗口
SQLSERVER海量数据库的查询优化及分页算法
作者:武汉SEO闵涛  文章来源:敏韬网  点击数52419  更新时间:2007/11/14 12:58:59  文章录入:mintao  责任编辑:mintao

 38326
 42283
 1553
 
25

 28140
 128720
 2330
 
50

 121686
 127846
 7168
 

  从上表中,我们可以看出,三种存储过程在执行100页以下的分页命令时,都是可以信任的,速度都很好。但第一种方案在执行分页1000页以上后,速度就降了下来。第二种方案大约是在执行分页1万页以上后速度开始降了下来。而第三种方案却始终没有大的降势,后劲仍然很足。

  在确定了第三种分页方案后,我们可以据此写一个存储过程。大家知道SQL SERVER的存储过程是事先编译好的SQL语句,它的执行效率要比通过WEB页面传来的SQL语句的执行效率要高。下面的存储过程不仅含有分页方案,还会根据页面传来的参数来确定是否进行数据总数统计。

-- 获取指定页的数据

CREATE PROCEDURE pagination3

@tblName   varchar(255),       -- 表名

@strGetFields varchar(1000) = ''''*'''',  -- 需要返回的列

@fldName varchar(255)='''''''',      -- 排序的字段名

@PageSize   int = 10,          -- 页尺寸

@PageIndex  int = 1,           -- 页码

@doCount  bit = 0,   -- 返回记录总数, 0 值则返回

@OrderType bit = 0,  -- 设置排序类型, 0

 << 上一页  [31] [32] [33] [34] [35] [36] [37] [38]  下一页

打印本文 打印本文 关闭窗口 关闭窗口