Sql Server 大数据量(千万级)操作的问题

时间:2022-02-18 11:30:48
最近有一个客户,提出了每日导入数据的操作。
对方不想做增量导出然后导入,只想全部重新导入,先将数据删除,然后将将数据重新导入。
每次操作的时候,牵涉到的数据量多达 1000万条记录以上。数据库操作是不是会出问题?
曾经做过一次将表中40万条记录删除的操作,经常超时退出,当然当时测试的机器性能比较差,只是普通的PC机器而已,内存512MB。
有经验的兄弟提提看法。

7 个解决方案

#1


truncate table tablename--这样删除是不记录日志的

#2


先連表一起刪除,然後再重新建表

drop table TableName
create table TableName(id int,........)

#3


先用truncate table tablename刪除表﹐這樣很快﹐不會超時﹐再导入到﹐建議用BCP导入
可以建一個bat批處理文件﹐每次只要執行bat文件﹐數據就自動导入了

#4


用导入导出工具也行啊,里面有导入前清空目标表

#5


建一个作业和dts包,作业里1.清空表2.执行dts包

#6


另可以加上
ALTER DATABASE DB_NAME SET RECOVERY SIMPLE
...
ALTER DATABASE DB_NAME SET RECOVERY FULL

#7


用向导设计dts,里面有选择追加还是先删除表,不需要象rouqu(石林#黄果树)说的需要2步来操作

#1


truncate table tablename--这样删除是不记录日志的

#2


先連表一起刪除,然後再重新建表

drop table TableName
create table TableName(id int,........)

#3


先用truncate table tablename刪除表﹐這樣很快﹐不會超時﹐再导入到﹐建議用BCP导入
可以建一個bat批處理文件﹐每次只要執行bat文件﹐數據就自動导入了

#4


用导入导出工具也行啊,里面有导入前清空目标表

#5


建一个作业和dts包,作业里1.清空表2.执行dts包

#6


另可以加上
ALTER DATABASE DB_NAME SET RECOVERY SIMPLE
...
ALTER DATABASE DB_NAME SET RECOVERY FULL

#7


用向导设计dts,里面有选择追加还是先删除表,不需要象rouqu(石林#黄果树)说的需要2步来操作