首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server 2016 - ColumnStore聚集索引与非ColumnStore聚集索引

Server 2016 - ColumnStore聚集索引与非ColumnStore聚集索引
EN

Database Administration用户
提问于 2017-02-17 15:53:31
回答 1查看 881关注 0票数 5

我刚刚阅读了位于这里的SQL2016ColumnStore索引指南。我们将在SQL 2016数据库中包含一些相当大的表(数亿到数十亿行),用于OLTP和分析。

这些表将主要被查询两种方法之一: 1)用户将根据Where子句中的特定离散值检索相当小的结果集(例如,其中SubId = 'ABC');2)用户将根据日期/时间值范围检索较大的结果集(例如,在'2/1/2017‘和’2/5/2017‘之间的ReadTime )。

由于列存储索引更适合scenerio #2 (我认为),我正在考虑将聚集索引非列存储(例如在SubId上)用于scenerio #1,并为clustered #2创建非聚集列存储索引(例如ReadTime)。

但是,如果我在ReadTime上创建了一个列存储聚集索引,而在SubId上创建了一个非列存储索引,我不确定这是否比创建一个列存储聚集索引更好。

我不知道该怎么做这个决定。

EN

回答 1

Database Administration用户

发布于 2017-02-17 16:32:33

集群列存储索引主要用于数据仓库、OLAP或报表解决方案。它们不擅长WHERE x = y类型查询;它们擅长于WHERE x < 1 and x > 1000000类型查询,其中查询处理器可以在CCI上执行范围扫描。

假设您的工作量是OLTP的关键,我建议,在不需要大量工作的情况下,创建一个标准B树聚集索引的表,并考虑一个设计良好的非聚集列存储索引,这将有助于实现第2点。

如果工作负载的OLTP组件很小,或者不是很关键,但是报告组件是关键的,那么您可以创建表作为集群列存储索引,然后添加许多starndard b树非聚集索引,以帮助支持OLTP组件。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/164710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档