CREATE PROCEDURE XMLATTR$TMPTBL_Int_JOIN_test @str xml, @tookms int OUTPUT AS DECLARE @start datetime SELECT @start = getdate() CREATE TABLE #xmlint (num int NOT NULL) INSERT #xmlint (num) SELECT T.Item.value('@num', 'int') FROM @str.nodes('/Root/Num') AS T(Item) INSERT Int_JOIN(word) SELECT u.word FROM usrdictwords u JOIN #xmlint x ON u.wordno = x.num SELECT @tookms = datediff(ms, @start, getdate()); SELECT word FROM Int_JOIN TRUNCATE TABLE Int_JOIN go CREATE PROCEDURE XMLATTR$TMPTBL_Str_JOIN_test @str xml, @tookms int OUTPUT AS DECLARE @start datetime SELECT @start = getdate() CREATE TABLE #xmlstr (str nvarchar(50) COLLATE database_default NOT NULL) INSERT #xmlstr (str) SELECT T.Item.value('@Item', 'nvarchar(50)') FROM @str.nodes('/Root/Word') AS T(Item) INSERT Str_JOIN(wordno, guid) SELECT u.wordno, u.guid FROM usrdictwords u JOIN #xmlstr x ON u.word = x.str SELECT @tookms = datediff(ms, @start, getdate()); SELECT wordno FROM Str_JOIN TRUNCATE TABLE Str_JOIN go