关于表数据行统计的问题和相关误区

简介:

数据库及其版本:SQL Server2008 原以为针对聚集索引列会快点,结果却是错误的。

 

--一个300多万记录的表,无任何索引,进行表扫描

select COUNT(*) from testcount

--'testcount'。扫描计数3,逻辑读取89181 次,物理读取1001 次,预读87602 次,lob 逻辑读取次,lob 物理读取次,lob预读次。

 

select COUNT(ProductID) from testcount

--'testcount'。扫描计数3,逻辑读取89181 次,物理读取915 次,预读82713 次,lob 逻辑读取次,lob 物理读取次,lob预读次。

 

create index testcount_pk on testcount(clusterPK)

select COUNT(*) from testcount

--count(*)count(索引列)是差不多的,会自动选择非聚集索引扫描

select COUNT(ProductID) from testcount

--'testcount'。扫描计数3,逻辑读取9135 次,物理读取次,预读14 次,lob 逻辑读取次,lob 物理读取次,lob 预读0次。

 

--创建聚集索引后,聚集索引扫描和全表扫描差不多

drop index testcount.testcount_pk

create clustered index testcount_pk on testcount(clusterPK)

select COUNT(*) from testcount

--'testcount'。扫描计数3,逻辑读取84541 次,物理读取1287 次,预读84311 次,lob 逻辑读取次,lob 物理读取次,lob预读次。

select COUNT(ProductID) from testcount

--'testcount'。扫描计数3,逻辑读取84541 次,物理读取1647 次,预读84098 次,lob 逻辑读取次,lob 物理读取次,lob预读次。

 

--本以为聚集索引扫描会走非叶子节点即可,结果却不是

--所以还是统计非空的非聚集索引快点










本文转自baoqiangwang51CTO博客,原文链接:http://blog.51cto.com/baoqiangwang/591289,如需转载请自行联系原作者

相关文章
|
10月前
|
JavaScript 前端开发 API
【项目数据优化三】长列表数据优化
【项目数据优化三】长列表数据优化
91 0
【SQL开发实战技巧】系列(七):从有重复数据前提下如何比较出两个表中的差异数据及对应条数聊起
本篇文章讲解的主要内容是:***如果有重复数据如何检查出两个表中的差异数据及对应条数、表连接做聚合容易出现重复计算的错误、多表查询空值处理问题、NOT IN的子查询范围不能是空值,否则查询结果为空。***
【SQL开发实战技巧】系列(七):从有重复数据前提下如何比较出两个表中的差异数据及对应条数聊起
|
SQL 数据库
数据库(2)--加深对统计查询的理解,熟练使用聚合函数
数据库(2)--加深对统计查询的理解,熟练使用聚合函数
75 0
数据库(2)--加深对统计查询的理解,熟练使用聚合函数
|
缓存 关系型数据库 MySQL
索引三表优化案例|学习笔记
快速学习索引三表优化案例
64 0
索引三表优化案例|学习笔记
|
前端开发 Shell
前端列表数据存在的陷阱
记录列表数据过多存在的问题
|
算法 Java 数据库连接
大主子表关联的性能优化方法
一、        原理解释所谓主子表关联计算,就是针对主表的每条记录,按关联字段找到子表中对应的一批记录。以订单(主表)和订单明细(子表)为例,两者以订单ID为关联字段。下图显示了关联计算过程中对主表中一条记录的处理情况,红色箭头代表没找到对应记录(不可关联),绿色箭头代表找到了对应记录(可关联):                                               假设订单(主表)有m条记录,订单明细(子表)有n条记录,在不考虑优化算法时,主表中每一条记录的关联都需要遍历子表,相应的时间复杂度为O(n)。
1350 0
|
SQL Java 测试技术
再送一波干货,测试2000线程并发下同时查询1000万条数据库表及索引优化
原文:再送一波干货,测试2000线程并发下同时查询1000万条数据库表及索引优化 继上篇文章《绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来》发布后在博客园首页展示得到了挺多的阅读量,我这篇文章就是对上篇文章的千万级数据库表在高并发访问下如何进行测试访问 这篇文章的知识点如下: 1.
1943 0

热门文章

最新文章

相关实验场景

更多