是否可以将任何“特定列”索引添加到使用“CLUSTERED COLUMNSTORE”选项创建的 SQL Server 表中?

Posted

技术标签:

【中文标题】是否可以将任何“特定列”索引添加到使用“CLUSTERED COLUMNSTORE”选项创建的 SQL Server 表中?【英文标题】:Is it possible to add any 'specific column' index to a SQL Server table created with "CLUSTERED COLUMNSTORE" option? 【发布时间】:2020-11-25 12:11:14 【问题描述】:

我在 Azure SQL Server 中有一个使用 CLUSTERED COLUMNSTORE 索引创建的表。

我应该在这个表上添加任何额外的特定列索引还是该表已经被COLUMNSTORE 本身优化为读/写?

DROP TABLE IF EXISTS Product
GO

CREATE TABLE Product 
(
    ProductID int,
    Name nvarchar(50) NOT NULL,
    Quantity int,
    INDEX cci CLUSTERED COLUMNSTORE
)

【问题讨论】:

【参考方案1】:

    根据document,我们可以看到聚集列存储索引是内存中技术之一,它可以减少我们的存储空间(最多 10 倍)并提高报告和分析查询的性能。这样它就可以在不增加我们的服务层级的情况下提高性能。

    我们知道,行存储索引在搜索数据、搜索特定值或小范围值的查询时表现最佳。 根据这个document,我们可以在Azure sql中将rowstore和columnstore合并到同一张表上。

总结: 因此,如有必要,您可以添加任何 specific column 索引。

【讨论】:

以上是关于是否可以将任何“特定列”索引添加到使用“CLUSTERED COLUMNSTORE”选项创建的 SQL Server 表中?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以为 GitHub 编写一个将项目的某些特定列移动到另一个项目的操作?

Extjs 网格列标题,将下拉菜单项添加到特定列

如何使用索引标签将 DataFrame 分组并执行操作以根据每个索引在特定列中找到 3 个最大的

EclipseLink - 向 Postgres 添加索引

将数据添加到 DataGrid 中的特定列

将上下文菜单添加到特定的 Qtablewdiget 表列,Python