CREATE PROCEDURE FNFIX$BINARY_Int_COUNT_test
@str varbinary(MAX),
@retdata bit = 1,
@tookms int = NULL OUTPUT AS
DECLARE @start datetime2(3)
SELECT @start = sysdatetime()
DECLARE @cnt bigint
SELECT @cnt = SUM(len(word))
FROM usrdictwords u
JOIN fn_fixbinary_single(@str) AS a ON u.wordno = a.n
SELECT @tookms = datediff(ms, @start, sysdatetime());
go
CREATE PROCEDURE FNFIX$BINARY_Int_EXISTS_test
@str varbinary(MAX),
@retdata bit = 1,
@tookms int = NULL OUTPUT AS
DECLARE @start datetime2(3)
SELECT @start = sysdatetime()
INSERT #Int_JOIN (word)
SELECT u.word
FROM usrdictwords u
WHERE EXISTS (SELECT * FROM fn_fixbinary_single(@str) AS a WHERE u.wordno = a.n)
SELECT @tookms = datediff(ms, @start, sysdatetime());
IF @retdata = 1 SELECT word FROM #Int_JOIN
TRUNCATE TABLE #Int_JOIN
go
CREATE PROCEDURE FNFIX$BINARY_Int_JOIN_test
@str varbinary(MAX),
@retdata bit = 1,
@tookms int = NULL OUTPUT AS
DECLARE @start datetime2(3)
SELECT @start = sysdatetime()
INSERT #Int_JOIN (word)
SELECT u.word
FROM usrdictwords u
JOIN fn_fixbinary_single(@str) AS a ON u.wordno = a.n
SELECT @tookms = datediff(ms, @start, sysdatetime());
IF @retdata = 1 SELECT word FROM #Int_JOIN
TRUNCATE TABLE #Int_JOIN
go
CREATE PROCEDURE FNFIX$BINARY_Int_UNPACK_test
@str varbinary(MAX),
@retdata bit = 1,
@tookms int = NULL OUTPUT AS
DECLARE @start datetime2(3)
SELECT @start = sysdatetime()
INSERT #Int_UNPACK (number)
SELECT wordno = a.n
FROM fn_fixbinary_single(@str) AS a
SELECT @tookms = datediff(ms, @start, sysdatetime());
IF @retdata = 1 SELECT number FROM #Int_UNPACK
TRUNCATE TABLE #Int_UNPACK
go