CREATE PROCEDURE FIX$MSTMT_Int_JOIN_test
                 @str    nvarchar(MAX),
                 @tookms int OUTPUT AS

DECLARE @start datetime
SELECT @start = getdate()

INSERT Int_JOIN(word)
SELECT u.word
FROM   usrdictwords u
JOIN   fixstring_mstmt(@str, 9) AS a ON u.wordno = convert(int, a.str)

SELECT @tookms = datediff(ms, @start, getdate());

SELECT word FROM Int_JOIN
TRUNCATE TABLE Int_JOIN
go


CREATE PROCEDURE FIX$MSTMT_Int_UNPACK_test
                 @str    nvarchar(MAX),
                 @tookms int OUTPUT AS

DECLARE @start datetime
SELECT @start = getdate()

INSERT Int_UNPACK(number)
SELECT wordno = convert(int, a.str)
FROM   fixstring_mstmt(@str, 9) AS a

SELECT @tookms = datediff(ms, @start, getdate());

SELECT number FROM Int_UNPACK
TRUNCATE TABLE Int_UNPACK
go


CREATE PROCEDURE FIX$MSTMT_Str_JOIN_test
                 @str    nvarchar(MAX),
                 @tookms int OUTPUT AS

DECLARE @start datetime
SELECT @start = getdate()

INSERT Str_JOIN(wordno, guid)
SELECT u.wordno, u.guid
FROM   usrdictwords u
JOIN   fixstring_mstmt (@str, 30) AS a on u.word = a.str

SELECT @tookms = datediff(ms, @start, getdate());

SELECT wordno FROM Str_JOIN
TRUNCATE TABLE Str_JOIN
go


CREATE PROCEDURE FIX$MSTMT_Str_UNPACK_test
                 @str    nvarchar(MAX),
                 @tookms int OUTPUT AS

DECLARE @start datetime
SELECT @start = getdate()

INSERT Str_UNPACK(word)
SELECT word = rtrim(a.str)
FROM   fixstring_mstmt(@str, 30) AS a

SELECT @tookms = datediff(ms, @start, getdate());

SELECT word FROM Str_UNPACK
TRUNCATE TABLE Str_UNPACK
go