相关疑难解决方法(0)

如何使用SSIS将大型平面文件加载到数据库表中?

我不确定它是如何工作的所以我正在寻找合适的解决方案.我认为SSIS是正确的方法,但我以前从未使用过它

场景:

每天早上,我都会得到一个带有800K记录的制表符分隔文件.我需要将它加载到我的数据库中:

  1. 从ftp或本地获取文件
  2. 首先,我需要从数据库中删除新文件中不存在的那个;
    • 如何比较tsql中的数据
    • 我应该在哪里加载来自制表符分隔文件的数据,以便将其与文件进行比较?我应该使用临时表吗?ItemID是表中的唯一列.
  3. 其次,我只需要将新记录插入数据库.
  4. 当然,它应该是自动化的.
  5. 它应该是有效的方法,而不会过热SQL数据库

不要忘记该文件包含800K记录.

样本平面文件数据:

ID  ItemID  ItemName  ItemType
--  ------  --------  --------
 1  2345    Apple     Fruit
 2  4578    Banana    Fruit
Run Code Online (Sandbox Code Playgroud)

我该如何处理这个问题?

ssis sql-server-2008

11
推荐指数
2
解决办法
2万
查看次数

SSIS DataFlowTask DefaultBufferSize 和 DefaultBufferMaxRows

我有一个任务,它使用数据流任务将记录从 Oracle db 提取到我们的 SQL。该套餐每天运行约 45 分钟。此包将刷新约 15 个表。除了一个,其他都是增量更新。所以几乎每个任务都运行 2 到 10 分钟。

完全更换的一包运行长达 25 分钟。我想调整此数据流任务以使其运行得更快。

表中只有 400k 行。我确实阅读了一些关于 DefaultBufferSize 和 DefaultBufferMaxRows 的文章。我有以下疑问。

  1. 如果我可以将 DefaultBufferSize 设置为 100 MB,是否有任何地方可以查看或分析我可以提供多少。

  2. DefaultBufferMaxRows 设置为 10k。即使我给了 50k 并且我为 DefaultBufferSize 提供了 10 MB,如果它只能容纳大约 20k,那么 SSIS 会做什么。只是忽略那些 30k 记录还是它仍然会拉出所有那些 50k rocords(假脱机)?

  3. 我可以使用日志记录选项来设置适当的限制吗?

sql ssis bids dataflowtask sql-server-2008

5
推荐指数
1
解决办法
6115
查看次数

标签 统计

sql-server-2008 ×2

ssis ×2

bids ×1

dataflowtask ×1

sql ×1