SQL Server 如何删除聚集列存储区索引?

fzwojiic  于 2022-12-28  发布在  其他
关注(0)|答案(1)|浏览(189)

如何删除表上的聚集列存储索引?
我试图改变一列的长度,但得到这个错误:
语句失败,因为辅助字典达到了最大大小限制。
请考虑删除列存储索引,更改列,然后创建新的列存储索引。
我有一张表,大概是这样的:

CREATE TABLE [dim].[Ticket]
( 
    [ID] [bigint]  NULL,
    [Rev] [int]  NULL,
    [Timestamp] [datetime2](7)  NULL,
    [Title] [varchar](260)  NULL,
    [Description] [varchar](4005)  NULL
)
WITH
(
    DISTRIBUTION = HASH ( [ID] ),
    CLUSTERED COLUMNSTORE INDEX
)

当我尝试这个建议的变体时:
https://learn.microsoft.com/en-us/sql/t-sql/statements/drop-index-transact-sql?view=sql-server-ver16
我只是得到错误。

flseospp

flseospp1#

我检查了一下,这也适用于Synapse。
第一个月
那就放下
drop index ClusteredIndex_fdddc3c574214a2096190cbc54f58cc4 on dim. Ticket
这样就有了一个堆。当你准备好重新压缩表的时候
create clustered columnstore index cci_dim_ticket on dim.Ticket
但是使用CTAS创建一个新表,然后重命名并删除旧表会更有效,删除CCI实际上需要将表重写为未压缩的堆,使用CTAS可以跳过这一步。

相关问题