列存储索引的使用与性能优化
1. 非聚集列存储索引(NCCI)
在理论介绍之后,我们开始学习如何创建和使用非聚集列存储索引(NCCI)。传统上,事务性应用和分析性应用对 SQL Server 的负担不同,公司通常会将这些应用分开,并创建数据仓库。分析性查询会被转移到数据仓库数据库中,这意味着需要在数据仓库中复制一份数据,并且需要实现 ETL 过程来定期加载数据仓库。但对于一些分析需求,用户希望同时分析当前数据和存档数据,即操作分析。SQL Server 2016 结合列存储和内存表使得操作分析成为可能。
以下是我们要学习的内容:
- 创建非聚集列存储索引
- 在查询中忽略 NCCI
- 在查询中使用 NCCI
- 设计操作分析解决方案
- 压缩和查询性能
首先,我们要删除上一步创建的过滤(空)NCCI:
DROP INDEX NCCI_FactTest
ON dbo.FactTest;
GO
测试事实表以 B 树组织,没有额外的非聚集索引。为了进行比较,我们先重新检查测试事实表使用的空间:
EXEC sys.sp_spaceused N'dbo.FactTest', @updateusage = N'TRUE';
GO
结果如下:
| Name | rows | reserved | data | index_size | unused |
| ---- | ---- | -------
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



