需要将一个 150GB 的 SQL Server 表导出到多个管道分隔的平面文件中

Posted

技术标签:

【中文标题】需要将一个 150GB 的 SQL Server 表导出到多个管道分隔的平面文件中【英文标题】:Need to export one SQL Server table of 150GB into multiple pipe delimited flat files 【发布时间】:2014-10-27 16:49:17 【问题描述】:

需要将一个 150GB 大小的 SQL Server 表导出到多个管道分隔的平面文件中

表格只有2列,PKuniqueidentifier not nulltext null

一直在做 set rowcount BCP 查询,其中 uniqueidentifier 大于但表正在更新并且 PK 的顺序发生变化,没有 ID。

只是在寻找一种方法来快速转储这个大表,以便他们可以通过 SQL Loader 导入到 Oracle

不,出于各种原因,我们不想使用 SSIS

【问题讨论】:

大小是因为文本列,还是因为行数? 700,000 行,唯一 ID 是 GUID,文本是 XML 数据,SSIS 经验有限,SSIS 将括号放在 GUID 周围,而 BCP 没有,我可以导出到多个文件,其中 BCP 管道分隔做 GUID >比但 GUID 顺序发生变化,我需要相同的测试和生产脚本,恐怕我可能会错过或重复这样做的一行 【参考方案1】:

鉴于行数相对易于管理,我建议首先将您的唯一标识符写入临时表并分配一个行号列,使用类似于以下的选择:

SELECT ROW_NUMBER() OVER(ORDER BY uniqueidentifier ASC) AS RowNumber, uniqueidentifier 
FROM table

然后,您可以将您的临时表连接回您的实际数据,并为您的 bcp 批处理设置一系列行号。

【讨论】:

以上是关于需要将一个 150GB 的 SQL Server 表导出到多个管道分隔的平面文件中的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 Power BI 导出到 SQL Server 突破了 150k 行的限制

SQL Server Web 与标准版

SQL Server 日志文件快速增长

sql 检测更新触发器中修改的字段(sql server 2005)?

SQL Server 2008 R2未使用已分配的内存

无法在 SQL Server 中运行 .sql 文件