CREATE PROCEDURE MANYSELECT_Int_COUNT_test
@str nvarchar(MAX),
@retdata bit = 1,
@tookms int = NULL OUTPUT AS
DECLARE @start datetime2(3)
CREATE TABLE #manyintjoin (number int NOT NULL)
SELECT @start = sysdatetime()
EXEC unpack_with_manyselect @str, '#manyintjoin'
DECLARE @cnt bigint
SELECT @cnt = SUM(len(word))
FROM usrdictwords u
JOIN #manyintjoin m ON u.wordno = m.number
SELECT @tookms = datediff(ms, @start, sysdatetime());
go
CREATE PROCEDURE MANYSELECT_Int_EXISTS_test
@str nvarchar(MAX),
@retdata bit = 1,
@tookms int = NULL OUTPUT AS
DECLARE @start datetime2(3)
CREATE TABLE #manyintjoin (number int NOT NULL)
SELECT @start = sysdatetime()
EXEC unpack_with_manyselect @str, '#manyintjoin'
INSERT #Int_JOIN (word)
SELECT u.word
FROM usrdictwords u
WHERE EXISTS (SELECT * FROM #manyintjoin m WHERE u.wordno = m.number)
SELECT @tookms = datediff(ms, @start, sysdatetime());
IF @retdata = 1 SELECT word FROM #Int_JOIN
TRUNCATE TABLE #Int_JOIN
go
CREATE PROCEDURE MANYSELECT_Int_JOIN_test
@str nvarchar(MAX),
@retdata bit = 1,
@tookms int = NULL OUTPUT AS
DECLARE @start datetime2(3)
CREATE TABLE #manyintjoin (number int NOT NULL)
SELECT @start = sysdatetime()
EXEC unpack_with_manyselect @str, '#manyintjoin'
INSERT #Int_JOIN (word)
SELECT u.word
FROM usrdictwords u
JOIN #manyintjoin m ON u.wordno = m.number
SELECT @tookms = datediff(ms, @start, sysdatetime());
IF @retdata = 1 SELECT word FROM #Int_JOIN
TRUNCATE TABLE #Int_JOIN
go
CREATE PROCEDURE MANYSELECT_Int_UNPACK_test
@str nvarchar(MAX),
@retdata bit = 1,
@tookms int = NULL OUTPUT AS
DECLARE @start datetime2(3)
CREATE TABLE #manyintunpack (number int NOT NULL)
SELECT @start = sysdatetime()
EXEC unpack_with_manyselect @str, '#manyintunpack'
INSERT #Int_UNPACK (number)
SELECT number
FROM #manyintunpack
SELECT @tookms = datediff(ms, @start, sysdatetime());
IF @retdata = 1 SELECT number FROM #Int_UNPACK
TRUNCATE TABLE #Int_UNPACK
go
CREATE PROCEDURE MANYSELECT_Str_COUNT_test
@str nvarchar(MAX),
@retdata bit = 1,
@tookms int = NULL OUTPUT AS
DECLARE @start datetime2(3)
CREATE TABLE #manystrjoin (str nvarchar(50) COLLATE database_default NOT NULL)
SELECT @start = sysdatetime()
EXEC unpackstr_with_manyselect @str, '#manystrjoin'
DECLARE @cnt bigint
SELECT @cnt = SUM(len(guid))
FROM usrdictwords u
JOIN #manystrjoin l ON l.str = u.word
SELECT @tookms = datediff(ms, @start, sysdatetime());
go
CREATE PROCEDURE MANYSELECT_Str_EXISTS_test
@str nvarchar(MAX),
@retdata bit = 1,
@tookms int = NULL OUTPUT AS
DECLARE @start datetime2(3)
CREATE TABLE #manystrjoin (str nvarchar(50) COLLATE database_default NOT NULL)
SELECT @start = sysdatetime()
EXEC unpackstr_with_manyselect @str, '#manystrjoin'
INSERT #Str_JOIN (wordno, guid)
SELECT u.wordno, u.guid
FROM usrdictwords u
WHERE EXISTS (SELECT * FROM #manystrjoin l WHERE l.str = u.word)
SELECT @tookms = datediff(ms, @start, sysdatetime());
IF @retdata = 1 SELECT wordno FROM #Str_JOIN
TRUNCATE TABLE #Str_JOIN
go
CREATE PROCEDURE MANYSELECT_Str_JOIN_test
@str nvarchar(MAX),
@retdata bit = 1,
@tookms int = NULL OUTPUT AS
DECLARE @start datetime2(3)
CREATE TABLE #manystrjoin (str nvarchar(50) COLLATE database_default NOT NULL)
SELECT @start = sysdatetime()
EXEC unpackstr_with_manyselect @str, '#manystrjoin'
INSERT #Str_JOIN (wordno, guid)
SELECT u.wordno, u.guid
FROM usrdictwords u
JOIN #manystrjoin l ON l.str = u.word
SELECT @tookms = datediff(ms, @start, sysdatetime());
IF @retdata = 1 SELECT wordno FROM #Str_JOIN
TRUNCATE TABLE #Str_JOIN
go
CREATE PROCEDURE MANYSELECT_Str_UNPACK_test
@str nvarchar(MAX),
@retdata bit = 1,
@tookms int = NULL OUTPUT AS
DECLARE @start datetime2(3)
CREATE TABLE #manystrunpack (str nvarchar(50) COLLATE database_default NOT NULL)
SELECT @start = sysdatetime()
EXEC unpackstr_with_manyselect @str, '#manystrunpack'
INSERT #Str_UNPACK (word)
SELECT str
FROM #manystrunpack
SELECT @tookms = datediff(ms, @start, sysdatetime());
IF @retdata = 1 SELECT word FROM #Str_UNPACK
TRUNCATE TABLE #Str_UNPACK
go