是否可以将任何“特定列”索引添加到使用“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 编写一个将项目的某些特定列移动到另一个项目的操作?