测试压缩表和索引以及分区索引

分区在一个实例不同数据库创建相同的表,数据库没有其他消耗,分别在有聚集索引和堆表中进行插入测试

A/B两个库 对应A/B表

create table A
(
id int identity(1,1),
str1 char(100) default replicate('a',100),
str2 varchar(2000) default replicate('b',500),
str3 varchar(2000) default replicate('c',1000)
)
go

insert into A default values
go 1000000

在B库 B表 id 上添加聚集索引

插入速度对比

               堆表中耗时:18:12

               聚集表中耗时:06:49

首先压缩B表(page最大限度压缩):

压缩前

未命名

1

差距很大哦!

聚集索引逻辑读数=表的页数

(1000000 行受影响)
表 'testbp1'(B表)。扫描计数 1,逻辑读取 1708 次,物理读取 0 次,预读 14 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

(1 行受影响)

表: 'testbp1' (1605580758);索引 ID: 1,数据库 ID: 8
已执行 TABLE 级别的扫描。
- 扫描页数................................: 1702
- 扫描区数..............................: 215
- 区切换次数..............................: 214
- 每个区的平均页数........................: 7.9
- 扫描密度 [最佳计数:实际计数].......: 99.07% [213:215]
- 逻辑扫描碎片 ..................: 0.24%
- 区扫描碎片 ..................: 1.86%
- 每页的平均可用字节数.....................: 11.1
- 平均页密度(满).....................: 99.86%
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

A堆表

(1000000 行受影响)
表 'testbp'。扫描计数 1,逻辑读取 200000 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

(1 行受影响)

A表:

表: 'testbp' (325576198);索引 ID: 0,数据库 ID: 10
已执行 TABLE 级别的扫描。
- 扫描页数................................: 200000
- 扫描区数..............................: 25006
- 区切换次数..............................: 25005
- 每个区的平均页数........................: 8.0
- 扫描密度 [最佳计数:实际计数].......: 99.98% [25000:25006]
- 区扫描碎片 ..................: 0.03%
- 每页的平均可用字节数.....................: 1.0
- 平均页密度(满).....................: 99.99%
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

差距哦!

在A 表添加id字段添加聚集索引分别插入1万行数据:

结果未压缩4S 插入完

压缩后的插入十几分钟还未完 最后两次ssms未响应二失败,cpu往上飙,很明显是要解压缩造成的,只能说查询的话,绝对给力,插入就不行啦

3

测试下压缩索引:(压缩后的表创建索引也会慢)

首先只能在a表测试了压缩和未压缩比较 我这里用top100000

未加索引:
SET STATISTICS IO ON
select TOP 100000 [id],[str3] FROM [dbo].[testbp] WHERE [str2] IS NOT NULL AND [str1] IS NOT NULL ORDER BY [str1] DESC

(100000 行受影响)
表 'testbp'。扫描计数 1,逻辑读取 22518 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

(1 行受影响)

未压缩之前插入1千行对比:2:22

回滚压缩非聚集索引对比:2:34 还是可以看得出的哦,当然用压缩索引还是会使查询加快 对插入还是有点耗资源

原文地址:https://www.cnblogs.com/kingwwz/p/5505192.html