我们正在设置一个SSIS包来加载格式化文本文件到SQL服务器。它将有大约1亿行和文件大小(每个大约15 GB的多个文件)100 GB。文件格式与XML架构一致类似下面......它需要近72小时,在加载该文件到SQL Server表...
文件格式
EM | 123 | XYZ | 30 |销售管理| 20000 |广告| 1街1 | State | City1 | US | AD | 12Street 2 | state 2 | City2 | UK | CON | 2012689648 | CON | 42343435
EM | 113 | WYZ | 31 | Sales grade | 200 | AD | 12 Street 1 | State2 | City2 | US | AD | 1Street 22 | state 3 | City 3 | UK | CON | 201689648 | CON | 423435
EM | 143 | rYZ | 32 |销售Egr | 2000 | AD | 113Street 1 | State3 | City3 | US | AD | 12Street 21 | state 4 | City 5 | UK | CON | 201269648 | CON | 443435
数据将以上述格式显示。这意味着“EM”直到“AD”是员工详细信息,如代码,姓名,年龄,名称,工资和“AD”是街道,州,城市,国家的详细地址。地址数据对于同一个员工可以是多个...类似地,“CON”是具有也可以是多个的电话号码的联系细节。
因此,我们需要在其他两个表中的员工详细信息和引用密钥中将代码作为主键加载到单独表中的地址详细信息中,单独表中的地址详细信息和单独表中的联系人详细信息。
我们设计了一个包,像脚本组件一样,使用.NET脚本逐行解析,并为每个表创建多个输出缓冲区,并在脚本中添加该行。将脚本组件输出映射到3个OLE DB目标(SQL Server表)。
我们的服务器是四核,具有48 GB RAM虚拟化,我们有2个核心,24 GB专用于数据库。我们的SQL服务器数据库(简单恢复模式)在SAN存储的网络共享位置中包含数据文件。为了提高性能,我们创建了不同数据文件(主要和次要)中的每个表格,但仍需要大约72小时。
需要关于以下几点的指导。
是否有可能使用BCP,如果是任何指针。(希望BCP将有更好的表现)
任何建议上指定的解决方案。
任何候补......
没有在表中定义还没有触发指标......我们甚至已经架设defaultMaxbufferzie为100 MB
期待着response..Any非常感谢帮助..
有什么问题吗?如何使这个更快?加载前是否禁用了索引? – 2012-03-01 17:53:10
绝对检查索引是否打开,以及是否在目标表上有一些时髦的触发器或其他对象。 – wergeld 2012-03-01 18:10:21
第1步,扔掉你的源脚本,除非你确信你的团队编写的代码比开箱即用的平面文件组件更严格。如果需要发送到多个目的地,请使用多播。你能澄清你的意思吗?“在脚本中添加了这一行。”给出所提供的输入数据可能是您的3个表的预期结果的例子将是有益的。 – billinkc 2012-03-01 19:05:12