【问题标题】:Sybase ASE : Table partitioningSybase ASE:表分区
【发布时间】:2020-03-20 10:50:35
【问题描述】:

我正在对 Sybase 中的一个大表进行分区。用例是,该表多年来一直在增长,并且应用程序不需要超过 6 个月的数据。所以,我需要归档一些行。我正在探索以下方法:

  • 在表中添加日期分区并按天对行进行分区
  • 编写一个在每个午夜执行的批处理并归档超过 6 个月大的分区

现在,为了让我这样做,我需要对现有表进行分区并有几个问题(我不是 Sybase 或数据库专家):

  • Sybase 中的Range partitioning 最接近我尝试实施的方法。但是,它要求您预先指定所有范围。那么,如果我想在一年内滚动创建每日分区,是否需要预先指定所有值?
  • 我可以alter 现有表并添加分区还是需要创建新表?

【问题讨论】:

    标签: database sap-ase database-partitioning archiving


    【解决方案1】:

    分区的目的是:

    1. 减少维护任务(dbcc、更新统计信息等)的时间
    2. 节省磁盘使用量(即使用慢速磁盘存储冷数据)
    3. 实现性能提升(具有重要的先前注意事项)

    如果您属于案例 1 或 2,答案是:

    要创建范围分区,您不需要设置上限;当您创建 next 分区时,会隐式定义范围的上限值。 下一个分区可以通过alter table

    随时定义

    如果你是第 3 种情况:

    要非常小心地定义分区列;理想情况下,它们必须匹配查询的 where 子句。使用有意义的全局索引,以便 ASE 能够找到每个分区中行的位置。其余部分使用本地索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      • 2016-02-17
      相关资源
      最近更新 更多