在列存储索引表上重新创建索引,包含350亿行

我有一张大桌子,我需要重建索引。 该表配置了群集列存储索引(CCI),我们意识到我们需要根据特定用例对数据进行排序。

用户执行日期范围和等同性查询,但由于数据未按照他们希望返回的方式排序,所以查询不是最优的。 SQL顾问团队建议将数据组织在正确的行组中,以便查询可以从行组消除中受益。

表格说明:

  • 按时间戳1分区,每月PF
  • 总排:310亿
  • Est行大小:60字节
  • Est桌子尺寸:600 GB
  • 表格定义:

    CREATE TABLE [dbo].[Table1](
        [PkId] [int] NOT NULL,
        [FKId1] [smallint] NOT NULL,
        [FKId2] [int] NOT NULL,
        [FKId3] [int] NOT NULL,
        [FKId4] [int] NOT NULL,
        [Timestamp1] [datetime2](0) NOT NULL,
        [Measurement1] [real] NULL,
        [Measurement2] [real] NULL,
        [Measurement3] [real] NULL,
        [Measurement4] [real] NULL,
        [Measurement5] [real] NULL,
        [Timestamp2] [datetime2](3) NULL,
        [TimeZoneOffset] [tinyint] NULL
    )
    
    CREATE CLUSTERED COLUMNSTORE INDEX [Table1_ColumnStoreIndex] ON [dbo].[Table1] WITH (DROP_EXISTING = OFF)
    GO
    

    环境:

  • SQL Server 2014 Enterprise Ed。
  • 8核,32 GB RAM
  • VMWare高性能平台
  • 我的策略是:

  • 放弃现有的CCI
  • 使用正确的列创建普通的聚集行索引,这将对数据进行排序
  • 使用DROP EXISTING = OFF重新创建CCI。 这将把现有的CRI转换为CCI。
  • 我的问题是:

  • 重建索引或重新加载数据是否有意义? 重新加载可能需要一个月才能完成,因为重建索引可能需要很多时间,也许......
  • 如果我放弃现有的CCI,表格会扩大,因为它可能不再被压缩了?
  • 链接地址: http://www.djcxy.com/p/95685.html

    上一篇: Recreate index on column store indexed table with 35 billion rows

    下一篇: Need for Reorganize/Rebuild indexes after frequent DELETE?