MSSQL ColumnStore 索引 - 常规索引的使用
Posted
技术标签:
【中文标题】MSSQL ColumnStore 索引 - 常规索引的使用【英文标题】:MSSQL ColumnStore index - use of conventional indexes 【发布时间】:2020-01-14 09:19:15 【问题描述】:如果这是一个简单的问题,请原谅我,但我似乎找不到任何明确的答案,并认为我会在这里发布。
如果我有一个创建了列存储索引的表,我还需要常规索引吗?
在我的示例中,我有一个包含 12 亿条记录的非常大的表
它有一个列存储索引,定义如下:
CREATE CLUSTERED COLUMNSTORE INDEX [IDX_123]
ON [dbo].[XXX]
WITH (DROP_EXISTING = OFF, COMPRESSION_DELAY = 0)
除此之外,咨询公司还在表中的每一列上创建了一个额外的非聚集行存储索引:我们有 30 个,即 30 个额外的索引
从我的测试看来,优化器似乎只是使用列存储索引而忽略了行存储索引,我的问题是这些是否是必需的?
【问题讨论】:
请查看文档 - docs.microsoft.com/en-us/sql/relational-databases/indexes/… 【参考方案1】:不是这样,列存储索引可以代替表扫描或索引扫描运算符中的行基索引,如果查询需要索引查找,它将使用行基索引
【讨论】:
以上是关于MSSQL ColumnStore 索引 - 常规索引的使用的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将任何“特定列”索引添加到使用“CLUSTERED COLUMNSTORE”选项创建的 SQL Server 表中?