Have you tried using the OPENXML method of doing it?
declare @hDoc INT
declare @xml xml -- there are 1000 rows in the xml document
set @xml = /*Your XML Doc here, it didn't copy well.*/
exec sp_xml_preparedocument @hDoc OUTPUT, @xml
FROM OPENXML(@hDoc, '//row')
WITH (guid uniqueidentifier './guid/text()',
rdn varchar(1024) './rdn/text()',
domainName varchar(32) './domainName/text()',
details varchar(1024) './details/text()',
parentGuid uniqueidentifier './parentGuid/text()') as t
exec sp_xml_removedocuemtn @hDoc</
That may give you better results. I’ve processed very large documents using this method without a problem.
It’s also recommended to not use the SELECT INTO command as it caused locking of the system objects in the tempdb and/or local database while the command is running. It’s much better to create the table ahead of time then fill the table via the INSERT INTO command.