大量数据转移

Wilbur 2004-04-26 12:21:36
数据库: MS SQL SERVER 2000
背景:
数据库设计的时候考虑到某个表(A)数据量太大,所以每天定时将其中的数据导入到另外一个表中(HA),使用存储过程和JOB完成。
存储过程大致为:
begin trans
insert HA .... select ... from A where [date] < ....
delete * from A where [date] < ...
end

因为A中数据量太大(大约每天10000000以上),因此该存储过程运行长时间不能完成,最后失败。

问题:
如何成功完成该功能?
...全文
31 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
netcoder 2004-04-26
  • 打赏
  • 举报
回复
把一个存储过程按时间段(where [date] <)拆分几个存储过程,分几个job,在几个时间执行,避免短时间内的大规模数据操作
Wilbur 2004-04-26
  • 打赏
  • 举报
回复
感谢大家的回复。
我会测试netcoder的方案。我想将数据分为24次转移,每小时执行一次。但是该方案会导致HA中的数据不完全。在M小时,A中有M小时的当前数据和(24-M)小时的昨天数据。当用户查询HA中的数据的时候会导致查询不准确。

另外taoxinfeng的DTS如何完成?我从来没有使用过DTS,希望大家更详细指教。

另外,大家觉得该存储过程的瓶颈是insert...select...还是delete?
taoxinfeng 2004-04-26
  • 打赏
  • 举报
回复
用sql server 的DTS,只要在调用是,添加时间参数就行了
lynx1111 2004-04-26
  • 打赏
  • 举报
回复
cgsun 2004-04-26
  • 打赏
  • 举报
回复
風開來delete

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧