2013-08-31 91 views
0

我正在查詢超過80GB的XML文件(並將結果插入預先存在的數據庫)。這可以防止我簡單地將它聲明爲xml變量並使用openrowset。我不希望使用CLR,並且如果可能的話,寧願採用完全TSQL方法(在SQL Server 2012/Windows Server 2008上執行此操作)查詢/分解大型XML文檔到SQL服務器

對於XML數據類型的2Gb限制,我意識到顯而易見的方法是將文件分割成1GB塊。然而,它只是太麻煩而不值得(文檔中的元素大小不一,並不是所有的元素都有相同的子元素,只是希望保留一些共同的元素)。

任何人有一個建議?

+0

抱歉是愚蠢的,但你有沒有嘗試OPENROWSET BULK或BCP XML在SQL服務器 – Dhaval

+0

與一些列的長度和凌亂的架構,我發現格式文件比他們的價值更麻煩。 –

回答

0

有了一個簡單的模式(對不起,應該提到它),大容量cmds可能是要走的路。有些東西比較亂,並且考慮到文件的大小,SAX解析器似乎提供了一個更好的解決方案。無需將其存入內存即可讀取文件,我只能挑選出我想要的元素,而不必擔心模式。

0

如果是一次性的事情,我會使用SQL導入/導出工具。如果它需要安排的東西創建一個Integration Services包。