2017-06-21 75 views
0

Oracle和SQL Server具有此功能,该功能允许将表分区切换到现有表(例如讨论here)。我无法为Sybase ASE找到类似的功能。将分区切换到现有表中

问题A部分:有没有办法在Sybase ASE中切换分区?

如果答案是“否”,我不确定如何继续。我的情况是我有一张非常大的桌子,它是按日期编制的。现在我需要为新的日期T_n + 1添加数据。

large table    new 
-------------------- ------ 
|T1|T2|T3| .... |Tn| + |Tn+1| 
-------------------- ------ 

插入图是速度不够快,如果我先上表中删除索引,但指数的娱乐需要大量的时间。一定有更好的方法!

问题B部分:将Tn + 1添加到大表中的最快方法是什么?

回答

1

回答部分A:

虽然Sybase ASE的支持移动分区合并分区,这些命令在一个表中工作,即,Sybase ASE的不支持分区之间的移动(不同)表。

答案B部分:

假设删除并重新创建索引是太昂贵(在时间方面,在用户需要的索引来访问其他分区的条款),你不留下很多的选择加快比一些基础知识以外的刀片:

  • 批量插入
  • 减少交易数量(即,减少次数,你必须写日志)
  • 为插入数据的会话禁用触发器[显然,您需要决定如何处理驻留在触发器中的任何必需逻辑]
  • 提高锁定升级阈值(对于表)以确保您不会升级为表级独占锁;只有当你无法用表级独占锁定来阻止其他用户时才感兴趣;可能需要碰撞锁数的配置设置;减少ASE 16.0+的问题,因为插入应该只升级到分区级锁
  • 如果您正在复制出此表,您可能需要考虑复制插入内容与直接将数据插入复制内的开销表[显然需要禁用插入到主表的复制]
+0

好的,倒霉的话。不管怎么说,还是要谢谢你! – Beginner