当前位置: 首页 > news >正文

太原网站制作报价互联网舆情报告

太原网站制作报价,互联网舆情报告,福田蒙派克6座,太原百度网站快速排名Sqlserver数据库分页查询一直是Sqlserver的短板#xff0c;闲来无事#xff0c;想出几种方法#xff0c;假设有表ARTICLE,字段ID、YEAR...(其他省略)#xff0c;数据53210条(客户真实数据#xff0c;量不大)#xff0c;分页查询每页30条#xff0c;查询第1500页#xf…Sqlserver数据库分页查询一直是Sqlserver的短板闲来无事想出几种方法假设有表ARTICLE,字段ID、YEAR...(其他省略)数据53210条(客户真实数据量不大)分页查询每页30条查询第1500页即第45001-45030条数据字段ID聚集索引YEAR无索引Sqlserver版本2008R2第一种方案、最简单、普通的方法 代码如下: [sql] view plaincopy SELECT TOP 30 * FROM ARTICLE WHERE ID NOT IN(SELECT TOP 45000 ID FROM ARTICLE ORDER BY YEAR DESC, ID DESC) ORDER BY YEAR DESC,ID DESC        平均查询100次所需时间45s 第二种方案 代码如下: [sql] view plaincopy SELECT * FROM (  SELECT TOP 30 * FROM (SELECT TOP 45030 * FROM ARTICLE ORDER BY YEAR DESC, ID DESC) f ORDER BY f.YEAR ASC, f.ID DESC) s ORDER BY s.YEAR DESC,s.ID DESC         平均查询100次所需时间138S 第三种方案 代码如下: [sql] view plaincopy SELECT * FROM ARTICLE w1,    (       SELECT TOP 30 ID FROM        (           SELECT TOP 50030 ID, YEAR FROM ARTICLE ORDER BY YEAR DESC, ID DESC       ) w ORDER BY w.YEAR ASC, w.ID ASC   ) w2 WHERE w1.ID  w2.ID ORDER BY w1.YEAR DESC, w1.ID DESC        平均查询100次所需时间21S 第四种方案 代码如下: [sql] view plaincopy SELECT * FROM ARTICLE w1        WHERE ID in            (               SELECT top 30 ID FROM                (                   SELECT top 45030 ID, YEAR FROM ARTICLE ORDER BY YEAR DESC, ID DESC               ) w ORDER BY w.YEAR ASC, w.ID ASC           )        ORDER BY w1.YEAR DESC, w1.ID DESC        平均查询100次所需时间20S 第五种方案 代码如下: [sql] view plaincopy SELECT w2.n, w1.* FROM ARTICLE w1, (  SELECT TOP 50030 row_number() OVER (ORDER BY YEAR DESC, ID DESC) n, ID FROM ARTICLE ) w2 WHERE w1.ID  w2.ID AND w2.n  50000 ORDER BY w2.n ASC         平均查询100次所需时间15S 查询第1000-1030条记录 第一种方案 代码如下: [sql] view plaincopy SELECT TOP 30 * FROM ARTICLE WHERE ID NOT IN(SELECT TOP 1000 ID FROM ARTICLE ORDER BY YEAR DESC, ID DESC) ORDER BY YEAR DESC,ID DESC         平均查询100次所需时间80s 第二种方案 代码如下: [sql] view plaincopy SELECT * FROM  (   SELECT TOP 30 * FROM (SELECT TOP 1030 * FROM ARTICLE ORDER BY YEAR DESC, ID DESC) f ORDER BY f.YEAR ASC, f.ID DESC) s ORDER BY s.YEAR DESC,s.ID DESC         平均查询100次所需时间30S 第三种方案 代码如下: [sql] view plaincopy SELECT * FROM ARTICLE w1,    (       SELECT TOP 30 ID FROM        (           SELECT TOP 1030 ID, YEAR FROM ARTICLE ORDER BY YEAR DESC, ID DESC       ) w ORDER BY w.YEAR ASC, w.ID ASC   ) w2 WHERE w1.ID  w2.ID ORDER BY w1.YEAR DESC, w1.ID DESC        平均查询100次所需时间12S 第四种方案 代码如下: [sql] view plaincopy SELECT * FROM ARTICLE w1        WHERE ID in            (               SELECT top 30 ID FROM                (                   SELECT top 1030 ID, YEAR FROM ARTICLE ORDER BY YEAR DESC, ID DESC               ) w ORDER BY w.YEAR ASC, w.ID ASC           )        ORDER BY w1.YEAR DESC, w1.ID DESC        平均查询100次所需时间13S 第五种方案 代码如下: [sql] view plaincopy SELECT w2.n, w1.* FROM ARTICLE w1,(   SELECT TOP 1030 row_number() OVER (ORDER BY YEAR DESC, ID DESC) n, ID FROM ARTICLE) w2 WHERE w1.ID  w2.ID AND w2.n  1000 ORDER BY w2.n ASC         平均查询100次所需时间14S      由此可见在查询页数靠前时效率34521页码靠后时54312再根据用户习惯一般用户的检索只看最前面几页因此选择3 4 5方案均可若综合考虑方案5是最好的选择但是要注意SQL2000不支持row_number()函数由于时间和条件的限制没有做更深入、范围更广的测试有兴趣的可以仔细研究下。 以下是根据第四种方案编写的一个分页存储过程 代码如下: [sql] view plaincopy if exists (select * from dbo.sysobjects where id  object_id(N[dbo].[sys_Page_v2]) and OBJECTPROPERTY(id, NIsProcedure)  1)   drop procedure [dbo].[sys_Page_v2]   GO   CREATE PROCEDURE [dbo].[sys_Page_v2]   PCount int output,    --总页数输出   RCount int output,    --总记录数输出   sys_Table nvarchar(100),    --查询表名   sys_Key varchar(50),        --主键   sys_Fields nvarchar(500),    --查询字段   sys_Where nvarchar(3000),    --查询条件   sys_Order nvarchar(100),    --排序字段   sys_Begin int,        --开始位置   sys_PageIndex int,        --当前页数   sys_PageSize int        --页大小   AS   SET NOCOUNT ON   SET ANSI_WARNINGS ON   IF sys_PageSize  0 OR sys_PageIndex  0   BEGIN           RETURN   END   DECLARE new_where1 NVARCHAR(3000)   DECLARE new_order1 NVARCHAR(100)   DECLARE new_order2 NVARCHAR(100)   DECLARE Sql NVARCHAR(4000)   DECLARE SqlCount NVARCHAR(4000)   DECLARE Top int   if(sys_Begin 0)       set sys_Begin0   else       set sys_Beginsys_Begin-1   IF ISNULL(sys_Where,)         SET new_where1      ELSE       SET new_where1   WHERE   sys_Where   IF ISNULL(sys_Order,)      BEGIN       SET new_order1   ORDER BY   Replace(sys_Order,desc,)       SET new_order1  Replace(new_order1,asc,desc)       SET new_order2   ORDER BY   sys_Order   END   ELSE   BEGIN       SET new_order1   ORDER BY ID DESC       SET new_order2   ORDER BY ID ASC   END   SET SqlCount  SELECT RCountCOUNT(1),PCountCEILING((COUNT(1)0.0)/                CAST(sys_PageSize AS NVARCHAR)) FROM   sys_Table  new_where1   EXEC SP_EXECUTESQL SqlCount,NRCount INT OUTPUT,PCount INT OUTPUT,                  RCount OUTPUT,PCount OUTPUT   IF sys_PageIndex  CEILING((RCount0.0)/sys_PageSize)    --如果输入的当前页数大于实际总页数,则把实际总页数赋值给当前页数   BEGIN       SET sys_PageIndex   CEILING((RCount0.0)/sys_PageSize)   END   set sql  select  sys_fields  from   sys_Table   w1          where  sys_Key  in (           select top  ltrim(str(sys_PageSize))    sys_Key   from            (               select top   ltrim(STR(sys_PageSize * sys_PageIndex  sys_Begin))     sys_Key   FROM             sys_Table  new_where1  new_order2            ) w   new_order1       )   new_order2   print(sql)   Exec(sql)   GO   文章来源CSDN 作者语不惊人死不休 查看原文
http://www.huolong8.cn/news/34618/

相关文章:

  • 校园网站建设方案模板ui设计和网站开发
  • dedecms妇科医院wap网站模板 v1.0服装商城的网站策划书
  • 网站平台建设工作汇报想给公司注册一个网站
  • 网站正在建设中怎么办深圳人才网站建设
  • 鼓楼网站开发wordpress 主页幻灯片
  • 网站开发 设计文档h5直播视频接入
  • 李沧网站建设电话服装网站建设规划书怎么写
  • 重庆璧山网站建设活动策划网站
  • 忻州建设厅官方网站腾讯邮箱邮箱入口
  • 石景山建网站网站开发合同书
  • 网站开发公司东莞9277在线观看最新资源
  • 长春火车站咨询电话号码是多少网站建设费可以计入管理费用吗
  • 餐饮网站界面网络营销的发展现状及趋势
  • 网站服务器建设电商商城系统免费
  • 自己做网站 有名网站空间需要备案吗
  • 汕头网站建设公司有哪些wordpress 嵌入 php
  • 张家港网站建设服务石家庄网站建设教程
  • 昆山网站建设多少钱室内装修设计学校哪里好
  • 青岛网站建设找网站备案率是什么
  • 网站建设项目确认书qq推广方法
  • 西安网站设计怎么自己建立一个网站后台
  • 电子商务建设网站西安做网站公司哪家好
  • 网站建设捌金手指花总十三网站开发及运营成本
  • 客户为什么需要建站服务如何设立邮箱和网站
  • 网上哪个网站做的系统好用吗文职人员招聘2023官网
  • 自己的博客和自己的网站做友链导游网站后台
  • 个人网站建设心得网络营销推广计划步骤有哪些
  • 网站建设的实验心得公众号平台注册
  • 郑州网站建设哪家有广西茶叶学会 网站建设
  • 连云港人才专业化网站网站建设教程简笔画