[英]What is the best approach to invoke a MSSQL procedure, which takes a large XML file as an argument?
我正在開發一個在每次啟動應用服務器時在MSSQL DB中插入XML文件內容的應用。
XML包含相關表的多個記錄。 存儲的proc將XML文件的內容作為(TEXT)參數,創建指針( sp_xml_preparedocument )並使用OPENXML插入表中。
我需要從XML文件所在的應用程序服務器中使用JDBC(或者可以是SQLCMD )執行該過程。
XML文件大約有160MB,現在我通過讀取較大的String對象的形式將XML文件發送給CallableStatement ,但它非常耗時/占空間/耗資源。
我不知道這是否是公認的最佳做法,但是如果我這樣做,我認為這很可能是以下方法的候選人:
在這種情況下,無需“傳遞”內存中的大量Blob,從而無需依賴MSXML即可依賴SQL Server BCP加載技術的高級處理。
在這種情況下,對SQL的調用是簡單的sp調用,其參數指向文件。
如果BCP不是您的最佳選擇,那么使用SSIS的類似解決方案也許可行。
最后,如果必須使用XML文件,則可以按順序將文件名傳遞給SQL CLR過程,該過程會將其加載到SQL內存中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.