2012-07-26 74 views
0

新手问题:是基于SQL服务器的XPath实现SAX和DOM基于

说,我有一个T-SQL这样的:

 DECLARE @xml XML 
     SET @xml = '<r><b>123</b></r><r><b>456</b></r>' 
     SELECT row.col.value('(b/text())[1]', 'integer') AS b_id 
     FROM @xml.nodes('//r') row(col) 

当运行XPath表达式,才能知道是否MS SQL服务器使用基于SAX的解析器还是基于DOM的解析器?想要澄清这一点,因为我们正在考虑使用它将大量数据分配到临时表中并在临时表上进一步处理。为了对数据服务器保持礼貌(消耗CPU周期),我们希望确保不会造成问题。我试图在网上搜索,但无法得到明确的答案。

此外,我们是否应该使用OPENXML,它是否比adhoc有什么好处?

在此先感谢!

回答

0

我无法回答您的SAX/DOM查询,但您的真正问题似乎是如何有效地将XML加载到SQL Server中。 This question提到了一种方法,并且SQL Server文档有others

OPENXML()可能不是最好的方法,因为您首先必须将整个XML文档作为参数传递给sp_xml_preparedocument,这意味着它不是批量加载数据的有用方法。

但是,只需开始测试并了解不同的批量加载解决方案在您的环境中执行的方式,它可能是最好的也是最简单的。