【问题标题】:How to insert a tables 600mln rows into another table如何将6亿行的表插入另一个表
【发布时间】:2015-05-14 15:38:01
【问题描述】:
设置:
主服务器,收集点
4个二级服务器,数据导入
导入服务器有更多的表。每个数据库大约 500GB 大,总共有超过 150 亿条记录
我们在尝试将表从导入的数据库导入到主服务器时遇到了问题。
我该怎么办?
【问题讨论】:
标签:
sql-server
sql-server-2012
【解决方案1】:
你可以使用SSIS
使用 2 个组件创建常规数据流 - OLE DB 源和 OLE DB 目标(我假设您使用的是 MS SQL Server,一般来说,使用您公司用来连接数据库的任何组件)。
如果有 2 个 DB,则创建 2 个连接管理器,每个都指向其 DB。将 OLE DB Source 指向配置为指向数据源的第一个连接管理器,将 OLE DB Destination 指向配置为指向目标 DB 的第二个连接管理器。
现在将 OLE DB Source 指向源 DB 中的源表,保持所有字段不变。连接源组件和目标组件,绿色箭头最初离开源组件。现在将 OLE DB Destination 指向目标 DB 中的目标表。双击目标,转到映射并确保它们正确(SSIS 尝试使用严格名称匹配自动映射),否则(如果名称不同)手动连接源和目标字段。就是这样,您只是不为目标表无法容纳的字段提供映射。
或者,您可以在源组件中省略不需要的列 - 双击它,转到 Columns 并取消选中您不需要的列。
问这个问题的更好的地方是:https://dba.stackexchange.com/