2011-09-12 50 views
0

我正在使用SSIS包中的xsd验证xml。我有一个1GB的文件,同时验证内存消耗高达3.5GB。无论如何,我们可以在SSIS中使用xsd来验证xml,并使用较少的内存(使用c#验证或其他方法)。在ssis中验证xml - 内存问题

回答

0

谢谢您的回答威尔,发布我做的步骤,相信这可以帮助有人

  1. 创建了一个脚本任务,请确认有(使用XMLReader的设置)
  2. 失败的脚本任务,如果有效通货膨胀失败
  3. 如果任务通,执行数据流中的XML源任务并将其存储
1

SSIS将整个文件加载到内存中,因此文件上的内存消耗是不可避免的。你可以创建一个XML架构集合,再现你的XSD,赋值给一个表中的XML列,并尝试将文件加载到表:

  1. 与XSD的格式创建一个XML架构集合。
  2. 使用指定模式的XML列创建表格
  3. 尝试使用SSIS将XML文件加载到表格中。

你可以看到如何创建架构集合的例子,在这里创建表:

http://msdn.microsoft.com/en-us/library/ms176009.aspx

+0

如果时间XSD变化,我们需要再次重新创建表,并再次是吧。你能告诉我,这种方法的记忆效率。 – Madhan

+0

您不需要一次又一次地创建表,XML列只是试图包含由模式验证的XML。如果您的XSD正在更改,那么您需要重新创建XML SCHEMA COLLECTION,但这是不可避免的。这种方法比使用SSIS更具有内存效率,因为整个文件不会被加载到内存中,它将被批量加载到表中。否则,你唯一的选择是某种C#xsd验证功能。 – Wil