我计划将JSON文档存储在SQL Server 2017中群集列存储索引表的nvarchar(max)
列中。
我是否有来自供应商(Microsoft)的一些相互矛盾的信息,不管这是一个好主意:
在以下情况下不使用群集的列存储索引:
varchar(max)
,nvarchar(max)
或varbinary(max)
数据类型。或者,设计columnstore索引,使其不包括这些列。虽然其他几篇MS博客文章都标出了相反的说法: https://blogs.msdn.microsoft.com/sqlserverstorageengine/2017/02/09/json-data-in-clustered-column-store-indexes/
后面的文章中甚至有很好的测试,但是第一个“不要使用...”没有任何东西可以备份该语句。
有人有经验会出什么问题吗?还是有人在生产中数百万行使用了这种功能?
答案 0 :(得分:1)
列存储索引的限制和限制
不能在非聚集列存储索引中包含 nvarchar(max)
、varchar(max)
和 varbinary(max)
类型的大对象 (LOB) 列。只有聚集列存储索引支持 LOB 类型,从 SQL Server 2017 (14.x)
版本开始,并且 Azure SQL 数据库配置在高级层、标准层(S3 及更高版本)和所有 VCore 产品层。请注意,以前的版本不支持聚集和非聚集列存储索引中的 LOB 类型。