2011-09-12 47 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