[英]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.