- 2
- 0
- 约9.59千字
- 约 15页
- 2018-06-08 发布于福建
- 举报
海量数库的查询优化及分页算法方案 2
海量数据库的查询优化及分页算法方案 2
海量数据库的查询优化及分页算法方案(22010-07-20 17:569、字段提取要按照需多少、提多少的原则,避免select*
我们来做一个试验:
select top 10000 gid,fariqi,reader,title from tgongwen order by gid desc
用时:4673毫秒
select top 10000 gid,fariqi,title from tgongwen order by gid desc
用时:1376毫秒
select top 10000 gid,fariqi from tgongwen order by gid desc
用时:80毫秒
由此看来,我们每少提取一个字段,数据的提取速度就会有相应的提升。提升的速度还要看您舍弃的字段的大小来判断。
10、count(*)不比count(字段)慢
某些资料上说:用*会统计所有列,显然要比一个世界的列名效率低。这种说法其实是没有根据的。我们来看:
select count(*)from Tgongwen
用时:1500毫秒
select count(gid)from Tgongwen
用时:1483毫秒
select count(fariqi)from Tgongwen
用时:3140毫秒
select count(title)from Tgongwen
用时:52050毫秒
从以上可以看出,如果用count(*)和用count(主键)的速度是相当的,而count(*)却比其他任何除主键以外的字段汇总速度要快,而且字段越长,汇总的速度就越慢。我想,如果用count(*),SQL SERVER可能会自动查找最小字段来汇总的。当然,如果您直接写count(主键)将会来的更直接些。
11、order by按聚集索引列排序效率最高
我们来看:(gid是主键,fariqi是聚合索引列)
select top 10000 gid,fariqi,reader,title from tgongwen
用时:196毫秒。扫描计数1,逻辑读289次,物理读1次,预读1527次。
select top 10000 gid,fariqi,reader,title from tgongwen order by gid asc
用时:4720毫秒。扫描计数1,逻辑读41956次,物理读0次,预读1287次。
select top 10000 gid,fariqi,reader,title from tgongwen order by gid desc
用时:4736毫秒。扫描计数1,逻辑读55350次,物理读10次,预读775次。
select top 10000 gid,fariqi,reader,title from tgongwen order by fariqi asc
用时:173毫秒。扫描计数1,逻辑读290次,物理读0次,预读0次。
select top 10000 gid,fariqi,reader,title from tgongwen order by fariqi desc
用时:156毫秒。扫描计数1,逻辑读289次,物理读0次,预读0次。
从以上我们可以看出,不排序的速度以及逻辑读次数都是和order by聚集索引列的速度是相当的,但这些都比order by非聚集索引列的查询速度是快得多的。
同时,按照某个字段进行排序的时候,无论是正序还是倒序,速度是基本相当的。
12、高效的TOP
事实上,在查询和提取超大容量的数据集时,影响数据库响应时间的最大因素不是数据查找,而是物理的I/0操作。如:
select top 10*from(
select top 10000 gid,fariqi,title from tgongwen where neibuyonghu=办公室
order by gid desc)as a
order by gid asc
这条语句,从理论上讲,整条语句的执行时间应该比子句的执行时间长,但事实相反。因为,子句执行后返回的是10000条记录,而整条语句仅返回10条语句,所以影响数据库响应时间最大的因素是物理I/O操作。而限制物理I/O操作此处的最有效方法之一就是使用TOP关键词了。TOP关键词是SQL SERVER中经过系统优化过的一个用来提取前几条或前几个百分比数据的词。经笔者在实践中的应用,发现TOP确实很好用,效率也很高。但这个词在另外一个大型数据库ORACLE中却没有,这不能说不是一个遗憾,虽然在ORACLE中可以用其他方法(如:rownumber)来解决。在以后的关于实现千万级数据的分页显示存储过程的讨论中,我们就将用到TOP这个关键词。
到此为止,我们上面
您可能关注的文档
最近下载
- 华南理工大学《土力学》2023-2024学年第一学期期末试卷.doc VIP
- 社会支持网络构建与实践探讨.docx VIP
- NB_T 10691-2021 数字中心机房用不间断电源系统.docx VIP
- 26春语文三年级下生字课课贴.pdf VIP
- 10kv电力线路技术专项施工方案.docx
- 2025年广东省中考数学试题卷(含答案解析).docx
- 极限配合与技术测量基础少学时第二版习题册参考答案.pdf VIP
- 2026年春季学期苏教版(2024)三年级下册数学教学计划附教学进度表.docx VIP
- 【26春新定版三下语文写字表课课贴(250字)9页.pdf VIP
- 小学三年级语文下册课课贴 .pdf VIP
原创力文档

文档评论(0)