我正在创建一个临床数据仓库,所以我正在测试不同的场景。我正在将以下表格从 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 中选择 *
问题 :
是否可以将多个数据流任务用于将每个表加载到一个包中。这样他们都一起跑。我只是想提高速度。但不知何故,它比我单独运行它要慢。
加载完整表格也是“从表格中选择*”的好方法?好像很慢!!
您可以执行与您拥有的处理器内核数减一一样多的并行数据流任务。也就是说,如果您使用的是八核处理器,则并行任务的理想数量是 7 (8 -1 )。只需将不同的序列容器放入其中(不是强制性的,但为了可读性)并执行。
您可以通过调整设置DelayValidation=true
和使用等几项内容来加速数据加载OPTION ( FAST 10000(or any value,just do some trials))
,还可以使用DefaultBufferSize
和DefaultBufferMaxRows
直到找到正确的内容。此外,如果您打算运行并行 DFT ,请检查该MAXDOP
值是否未设置为1
int 设置。
而且,永远不要使用SELECT * from table_name
. 列出列名,*
会增加额外的开销,并且会大大减慢您的查询速度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句