【问题标题】:Columnstore index vs replication列存储索引与复制
【发布时间】:2016-07-27 08:04:22
【问题描述】:

我正在研究一个新的 SQL Server 2012/2014 数据库,我们将使用它从旧的 Postgres 数据库迁移数据。这些数据将用于 Web 应用程序和报告目的。

我们需要解决的关键问题之一是许多报告的性能 [数据大小从 1 到 5000 万条记录增加]。

根据"best practice",我们最初考虑实现一个单独的报告数据库,我们假设该数据库将由 REPLICATION 填充。

同时,我查看了使用COLUMNSTORE index,因为我们的数据主要是只读的。我们在 4 月到 6 月之间有一段时期,在此期间插入数据,然后在该年的剩余时间里不修改数据。但是OLTP数据录入的高峰期,也是OLAP报表需求的高峰期,这也是两个数据库分开的原因。

我们必须解决的问题是 COLUMNSTORE 索引不能与 REPLICATION 一起使用。

替代方案似乎是

  • 最初为 OLTP 和 OLAP 使用单个 DB,实现 COLUMNSTORE 索引和监控性能。如果我们使用 SQLServer 2014,我们还可以充分利用可更新的 CLUSTERED COLUMNSTORE 索引。

  • 从一开始就创建报告数据库并使用 SSIS(或某种形式的 ETL 过程)将数据传输到报告数据库。为最差的报告实施 COLUMNSTORE 索引。

如果有任何基于其他项目经验的反馈,我将不胜感激。

【问题讨论】:

  • 您可能还想查看 SQL Server 2016
  • 2016 年提供什么?由于公司许可,它可能不是一个选项
  • 很好奇为什么列存储不是复制的选项。没有什么说发布者和订阅者模式必须匹配(特别是在索引方面)。
  • Columnstore MSDN 文档没有解释原因。可能与列索引段和行组的分页有关?

标签: sql-server reporting-services


【解决方案1】:

刚刚发现这个问题,因此决定对其发表评论 - 在 SQL Server 2016 中,您可以在发布者和订阅者上使用具有可更新非聚集列存储索引的复制。 甚至还有 2 个新选项可用于激活非聚集列存储索引的直接复制(默认和过滤)。更多详情可在这找到: Columnstore Indexes – part 83 (“Columnstore Replication in SQL Server 2016”) 目前还不支持Clustered Columnstore,这对于任何DWH场景来说当然是一个很大的遗憾。

【讨论】:

    猜你喜欢
    • 2015-10-29
    • 2013-12-17
    • 2014-04-12
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 2023-04-01
    • 2012-07-03
    • 1970-01-01
    相关资源
    最近更新 更多