Any one familiar with the performance of OpenXML vs nodes? These are two different queries that both shred an XML doc into relational data. The SQL 2000 method (sp_xml_preparedocument) is only 1% of the cost relative to the batch vs the .nodes 2005 function. I thought I remembered reading recommendations not to use sp_xml_preparedocument any more, but based on this query plan I don't see why I would use the .nodes function. Any one have any experience or suggestions?DECLARE @XmlDocumentHandle intDECLARE @XmlDocument nvarchar(max)DECLARE @Xml xmlSET @XmlDocument = N'<ROOT><Customer CustomerID="VINET" ContactName="Paul Henriot"> <Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00"> <OrderDetail OrderID="10248" ProductID="11" Quantity="12"/> <OrderDetail OrderID="10248" ProductID="42" Quantity="10"/> </Order></Customer><Customer CustomerID="LILAS" ContactName="Carlos Gonzlez"> <Order CustomerID="LILAS" EmployeeID="3" OrderDate="1996-08-16T00:00:00"> <OrderDetail OrderID="10283" ProductID="72" Quantity="3"/> </Order></Customer></ROOT>'SET @Xml = CAST(@XmlDocument AS XML)SELECT CustomerID = Customer.CustOrder.value('../@CustomerID','varchar(10)') ,ContactName = Customer.CustOrder.value('../../@ContactName','varchar(15)') ,EmployeeID = Customer.CustOrder.value('../@EmployeeID','varchar(10)') ,OrderID = Customer.CustOrder.value('@OrderID','int') ,ProductID = Customer.CustOrder.value('@ProductID','int') ,Quantity = Customer.CustOrder.value('@Quantity','int')FROM @Xml.nodes('ROOT/Customer/Order/OrderDetail') as Customer(CustOrder)-- Create an internal representation of the XML document.EXEC sp_xml_preparedocument @XmlDocumentHandle OUTPUT, @XmlDocument-- Execute a SELECT statement using OPENXML rowset provider.SELECT *FROM OPENXML (@XmlDocumentHandle, '/ROOT/Customer/Order/OrderDetail',1)WITH (CustomerID varchar(10) '../../@CustomerID', ContactName varchar(15) '../../@ContactName', EmployeeID INT '../@EmployeeID', OrderID int '@OrderID', ProductID int '@ProductID', Quantity int '@Quantity')-- Remove the internal representation.EXEC sp_xml_removedocument @XmlDocumentHandle