Sybase ASE:表分区

问题描述 投票:0回答:1

我正在对Sybase中的大表进行分区。用例是,表已经增长了很多年,并且应用程序不需要超过6个月的数据。因此,我需要存档一些行。我正在探索以下方法:

  • 将日期分区添加到表中并按天分区行
  • 写一个每隔午夜执行一次的批处理,并存档超过6个月的分区

现在,为了执行此操作,我需要对现有表进行分区并有几个问题(我不是Sybase或DB专家):

    Sybase中的
  • Range partitioning最接近我尝试实现的方法。但是,它要求您预先指定所有范围。因此,如果我想滚动创建一年的每日分区,是否需要预先指定所有值?
  • 我可以alter现有表并添加分区,还是需要创建一个新表?
database sybase-ase database-partitioning archiving
1个回答
0
投票

分区旨在:

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

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

要创建范围分区,您无需设置上限;创建next分区时隐式定义范围的上限值。可以通过alter table随时定义next

分区

如果您是情况三:

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

© www.soinside.com 2019 - 2024. All rights reserved.