将表数据清除到历史表中

时间:2013-10-24 18:37:39

标签: sql sql-server sql-server-2008 tsql

我有7个包含超过7亿行数据的表,它们包含旧数据。

例如:MstOrderInfo:在此表中,索引不正确。群集的非唯一索引位于两个非唯一列(ProductID& CustomerID)&我们正在使用这些列与其他表连接。我们在此表中有一个标识列(例如:OrderUniqueID,并且它不用于任何地方的连接)。现在,我被要求创建历史表并将这些旧数据从这些表中移动到历史表中。有人可以帮帮我吗?我需要遵循哪些关键点?

主表名称为MstOrderInfo。集群& {(1}}文件组中存在非聚集索引。

我正在考虑遵循的步骤:

  1. 使用新名称创建主表的副本:Fl_ORDER7

  2. 在此表上:MstOrderInfo_bak,在MstOrderInfo_bak文件组中的标识列(OrderUniqueID)上创建唯一的聚簇索引,并在其上创建非聚集的非唯一索引( Fl_ORDER6文件组中的CustomerIDProductID}列。

  3. 从主表(从Fl_ORDER7MstOrderInfo)将当前(必填)数据移到此表中。

  4. 将原始表格MstOrderInfo_bak重命名为MstOrderInfo,将MstOrderInfo_History重命名为MstOrderInfo_bak

  5. 删除MstOrderInfo(以前为MstOrderInfo_History)表格中的索引。在MstOrderInfo中的标识列(OrderUniqueID)和非聚集索引(例如:CustomerID& ProductID)上创建集群索引。

  6. 在这些表上重建索引。

0 个答案:

没有答案