在SQL Server表中大容量插入任何压缩格式

mspsb9vt  于 2022-11-21  发布在  SQL Server
关注(0)|答案(2)|浏览(102)

我想导入一个压缩文件的.Z格式有.txt文件。它的大小是37 GB,解压缩后变成240 GB。
首先,我解压缩文件,需要6~7个小时,然后使用导出导入向导导入到数据库,需要很多很多小时才能完成。
我一个月要做5次这个活动,它占用了服务器的所有资源,非常繁忙。
是否有任何程序或工具可以将任何压缩格式直接导入数据库?
我会非常感谢的。这对我来说是一个巨大的压力。需要帮助。

a8jjtwal

a8jjtwal1#

这类问题没有简单的解决方案。如果无法接受,您必须更改当前接收数据的方式:

  • 不知道您的数据,但也许您可以获得差异文件(仅包含更改)?
  • 您是否可以更频繁地以较小的块接收数据?
  • 是否可以直接连接到源系统?

否则,如果数据格式没有改变,我会创建无人值守的解决方案来解压缩和加载数据-然后让它在工作时间运行(周末是可能的)。然后你可以尝试不同的方法来加载数据。根据你的文件/表结构,也许你可以使用批量加载和分区切换等组合...
提到的来自SQL 2016的COMPRESSDECOMPRESS函数不会有帮助,因为这些函数将用于列。

9rygscc1

9rygscc12#

dba-tools powershell 实用 程序 对 gzip 压缩 的 csv 文件 具有 此 功能 。
使用 Import-DbaCsv 调用 dba-tools 。 如果 文件 以 .gz 结尾 , 它 将 即时 解 压缩 。 导入 也 是 流式 的 , 因此 内存 应该 保持 在 一 个 限制 范围 内 。
有关 gzip 压缩 , 请 参阅 此处 的 Git Issue :https://github.com/dataplat/dbatools/issues/8554 格式

相关问题