Так что после долгих поисков и обдумывания проблемы я переработал хранимые процедуры, которые выполняли измельчение.Вместо того, чтобы уничтожать переменную, передаваемую в хранимую процедуру, я просто уничтожил сам столбец XML.Это позволило мне уничтожить много значений XML одновременно вместо того, чтобы зацикливать и передавать их хранимой процедуре по одному за раз.Это дало мне прирост производительности, который я искал.Таким образом, вместо чего-то вроде этого ...
SET @xmlData = CAST(@xmlMessageData AS XML)
SELECT
, row.value('xmlNode1[1]', 'BIT' ) AS Column1
, row.value('xmlNode2[1]', 'NVARCHAR(255)') AS Column2
, row.value('xmlNode3[1]', 'BIT' ) AS Column3
, row.value('xmlNode4[1]/Name[1]', 'NVARCHAR(255)' ) AS Column4
FROM @xmlData.nodes('xmlRootNode') AS T1(row)
Я сейчас делаю это ...
SELECT
, row.value('xmlNode1[1]', 'BIT' ) AS Column1
, row.value('xmlNode2[1]', 'NVARCHAR(255)') AS Column2
, row.value('xmlNode3[1]', 'BIT' ) AS Column3
, row.value('xmlNode4[1]/Name[1]', 'NVARCHAR(255)' ) AS Column4
FROM [ESBMessagesData] D
CROSS APPLY
[DataItem].nodes('xmlRootNode') AS T1(row)