CREATE PROCEDURE FIX$TMPTBL_Int_JOIN_test @str nvarchar(MAX), @tookms int OUTPUT AS DECLARE @start datetime SELECT @start = getdate() CREATE TABLE #fixint(value int NOT NULL) INSERT #fixint(value) SELECT convert(int, str) FROM fixstring_single(@str, 9) INSERT Int_JOIN(word) SELECT u.word FROM usrdictwords u JOIN #fixint AS f ON u.wordno = f.value SELECT @tookms = datediff(ms, @start, getdate()); SELECT word FROM Int_JOIN TRUNCATE TABLE Int_JOIN go CREATE PROCEDURE FIX$TMPTBL_Str_JOIN_test @str nvarchar(MAX), @tookms int OUTPUT AS DECLARE @start datetime SELECT @start = getdate() CREATE TABLE #fixstr (str nvarchar(30) COLLATE database_default NOT NULL) INSERT #fixstr(str) SELECT str FROM fixstring_single(@str, 30) INSERT Str_JOIN(wordno, guid) SELECT u.wordno, u.guid FROM usrdictwords u JOIN #fixstr AS f on u.word = f.str SELECT @tookms = datediff(ms, @start, getdate()); SELECT wordno FROM Str_JOIN TRUNCATE TABLE Str_JOIN go