查询优化:实现500万以上的数据查询分页在3秒以内

这篇博客探讨了如何在SQL Server中优化大规模数据的分页查询,通过表变量和MAX方法实现高效分页。内容包括两个存储过程示例,展示了如何利用ORDER BY和ROWCOUNT限制来避免全表扫描,从而提高查询速度。
摘要由CSDN通过智能技术生成

 

描述信息

内容结果

count(*)比count(字段)

如果在开始时没有执行过count(最小字符的字段)来统计个数,count(*)不比count(字段)慢

Ge:

declare @d datetime

set @d=getdate()

SELECT count(*)

  FROM [TestPaging02].[dbo].[TGongwen]

select [用时(毫秒)]=datediff(ms,@d,getdate())

-----用时:21193---

次数

Count(*)

Count(gid)

1

743

720

2

686

743

3

753

686

字段提取要按照“需多少、提多少”的原则[H1]

declare @d datetime

set @d=getdate()

select top 10000 gid from tgongwen order by gid  desc

select [用时(毫秒)]=datediff(ms,@d,getdate())

3000

select top 10000 gid,fariqi,titlefrom tgongwen order by  gid desc

7436

select top 10000 gid,fariqi,title,readerfrom tgongwen  order by gid desc

17180

order by按聚集索引列排序效率最高

select top 10000 gid,fariqi,reader,title  from tgongwen(没有order by操作)

533

select top 10000 gid,fariqi,reader,title from tgongwen order by gidasc

(备注:create clustered index t_gid on TGongwen(gid)聚集索引gid列)

363

select t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值