gpt4 book ai didi

sql - 列存储索引和 nvarchar(max)

转载 作者:行者123 更新时间:2023-12-04 17:35:45 28 4
gpt4 key购买 nike

我计划将 JSON 文档存储在 nvarchar(max) 中SQL Server 2017 中聚集列存储索引表中的列。

我从供应商(微软)那里得到了几个相互矛盾的信息,无论这是否是一个好主意:

https://docs.microsoft.com/en-us/sql/relational-databases/indexes/columnstore-indexes-design-guidance?view=sql-server-2017

在以下情况下不要使用聚集列存储索引:

  • 该表需要 varchar(max) , nvarchar(max) , 或 varbinary(max)数据类型。或者,设计列存储索引,使其不包含这些列。

  • 而其他几篇 MS 博客文章的宣传则相反:
    https://blogs.msdn.microsoft.com/sqlserverstorageengine/2017/02/09/json-data-in-clustered-column-store-indexes/

    后一篇文章甚至有很好的测试,但第一个“不要使用...”没有任何内容来支持该声明。

    有没有人有经验可能会出错?或者有人在数百万行的生产中使用这样的功能?

    最佳答案

    列存储索引的限制和限制
    不能包含类型为 nvarchar(max) 的大对象 (LOB) 列, varchar(max) , 和 varbinary(max)在非聚集列存储索引中。只有聚集列存储索引支持 LOB 类型,从 SQL Server 2017 (14.x) 开始在高级层、标准层(S3 及更高版本)和所有 VCore 产品层层配置的版本和 Azure SQL 数据库。请注意,以前的版本不支持聚集和非聚集列存储索引中的 LOB 类型。
    souce

    关于sql - 列存储索引和 nvarchar(max),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56703735/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com