gpt4 book ai didi

sql-server - 我应该使用 SSIS 还是多线程 C# 应用程序将平面文件加载到数据库中?

转载 作者:行者123 更新时间:2023-12-02 07:16:33 24 4
gpt4 key购买 nike

在 SQL Server Integration Services (SSIS) 中,可以设置与平面文件的连接,该平面文件可以保存数百万条记录,并将该数据推送到 SQL 数据库。此外,可以通过引用和使用 Microsoft.SqlServer.Dts.Runtime 命名空间从 C# 应用程序调用此过程。

包含数百万条记录的平面文件最好使用 SSIS 运行,还是集体“你”更喜欢具有多个工作线程的 c# 应用程序(一个用于读取行并将行添加到变量,一个用于从该变量写入到数据库),以及管理这些线程的“母”类? (开发箱有两个 cpu)

我看到此数据 ( sql team blog) 表明对于具有一百万行的平面文件,SSIS 是最快的:

Process                Duration (ms)
-------------------- -------------
SSIS - FastParse ON 7322 ms
SSIS - FastParse OFF 8387 ms
Bulk Insert 10534 ms
OpenRowset 10687 ms
BCP 14922 ms

你有什么想法?

最佳答案

我只能说说我自己和我的经历。我会选择 SSIS,因为这是您可能会不必要地重新发明轮子的情况之一。这是 SSIS 已经解决的重复性任务。

我每天管理大约 57 个工作(DTS 和 SSIS 的组合)。其中四个经常处理 5 到 1 亿条记录的导出。我管理的数据库大约有 20 亿行。我使用脚本任务来附加日期,精确到毫秒,这样我就可以一天运行几次作业。现在已经这样做了大约 22 个月。太棒了!

也可以安排 SSIS 作业。所以你可以设置它并忘记它。我每天都在监控一切,但文件处理部分从未出现故障。

我唯一一次不得不求助于自定义 C# 程序是在我需要将非常大的文件拆分成较小的 block 时。 SSIS 对于这类东西来说太慢了。使用脚本任务拆分一个 1 gig 文本文件大约需要一个小时。 C# 自定义程序在 12 分钟内处理完毕。

最后,只用你觉得用得舒服的东西。

关于sql-server - 我应该使用 SSIS 还是多线程 C# 应用程序将平面文件加载到数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/146732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com