使用SSIS在多个表中同时从oracle到SQL加载数据

时间:2018-08-01 03:29:19

标签: sql-server ssis sql-data-warehouse

enter image description here

我正在创建临床数据仓库,因此我正在测试不同的场景。我正在将下表从oracle DB(Attunity连接器)加载到SQL DB(OLE DB):

表1 1.2 GB(300万行) 表2 20 GB(2亿行) 表3 100 GB(2.5亿行) 表4 25 GB(6000万行)

对于我的初始负载,我计划使用SSIS并仅从TABLE1 / TABLE2 / TABLE3 / TABLE4中选择*

问题:

可以有多个数据流任务来将每个表加载到一个包中。这样它们都可以一起运行。我只是想以此来提高速度。但是以某种方式它比我单独运行它要慢。

“加载*从表中”也是一种加载完整表的好方法吗?似乎很慢!

2 个答案:

答案 0 :(得分:2)

您可以执行的并行数据流任务数量与处理器内核数(减一)一样多。也就是说,如果您使用八核处理器,则并行任务的理想数量是7(8 -1)。只需将其放入不同的序列容器(不是强制性的,而是为了便于阅读)并执行。

您可以通过调整设置DelayValidation=true和使用OPTION ( FAST 10000(or any value,just do some trials))之类的几项来加快数据加载,还可以使用DefaultBufferSizeDefaultBufferMaxRows直到获得正确的那个。另外,如果您打算运行并行DFT,请检查设置中的MAXDOP值是否未设置为1

而且,切勿使用SELECT * from table_name。列出列名,*会增加额外的开销,并且会大大降低查询速度。

答案 1 :(得分:0)

过程1:使用SSMA

您可以使用SQL Server迁移助手(SSMA)将数据从Oracle迁移到Sql Server数据库/模式/表。

这是Microsoft的用于数据库迁移的开源工具。

Microsoft SQL Server迁移助手(SSMA)是一种工具,用于自动将数据库从Microsoft Access,DB2,MySQL,Oracle和SAP ASE迁移到SQL Server。

过程2:使用SSIS

您还可以使用SQL Server Integration Services(SSIS)包进行迁移。

通过“导入/导出”向导创建SSIS程序包,并将其运行到命令行中。