【问题标题】:How to add columns to a datareader如何将列添加到数据读取器
【发布时间】:2020-09-15 17:22:02
【问题描述】:

我遇到了与下面的场景(链接)几乎完全相同的问题,但不幸的是我无法成功地重新创建解决方案。

我有一个 c# 应用程序,它使用带有数据读取器和写入服务器的 SQL 批量导入,它是 SQLDatReader 或 OracleDataReader,我需要将列添加到结果集中。

我不能对源 sql 语句执行此操作。 我无法先加载数据表并对其进行修改(因为它是 100 GB 的数据,几乎是 TB)。

How to add columns to DataReader

谁能提供一个工作示例来帮助“推动”我解决这个问题?

我暂时找到了使用 SQL Server Integration Services (SSIS) 的解决方案,但是我在观看它运行时发现它会将所有数据下载到 dts_buffer,而不是列修改然后将数据泵入 sql server,尝试用几个 100gb 的数据来做这件事,如果你甚至可以让你的基础设施为你构建一个具有 128gb 内存的 24 核 VM,那它的性能并不是很好。

【问题讨论】:

标签: c# sqldatareader datareader


【解决方案1】:

我终于有了一个小的工作示例,codeproject (jdweng) 很有帮助。 我会提出跟进,我已经用sql server(sqldatareader)测试过,需要用oracle数据阅读器做一个测试。

我尝试的其中一个案例是将 oracle 唯一 ID(存储为字符串)作为唯一标识符转换为 sql server。我想即时转换它,无法调整源 oracle 语句(ADyson)以将兼容的数据类型返回给 sql server。之后将 1tb 表从 varchar(40) 更改为 uniqueidentifier 很痛苦,但如果我可以作为批量插入的一部分进行更改,那会很快。

我想我现在可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-07
    • 2021-08-23
    • 1970-01-01
    • 2022-01-05
    • 2013-04-25
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    相关资源
    最近更新 更多