CREATE PROCEDURE MANYINSERT_Int_JOIN_test
@str nvarchar(MAX),
@tookms int OUTPUT AS
DECLARE @start datetime
CREATE TABLE #numbers (number int NOT NULL)
SELECT @start = getdate()
EXEC unpack_with_insert @str, '#numbers'
INSERT Int_JOIN(word)
SELECT u.word
FROM usrdictwords u
JOIN #numbers n ON u.wordno = n.number
SELECT @tookms = datediff(ms, @start, getdate());
SELECT word FROM Int_JOIN
TRUNCATE TABLE Int_JOIN
go
CREATE PROCEDURE MANYINSERT_Int_UNPACK_test
@str nvarchar(MAX),
@tookms int OUTPUT AS
DECLARE @start datetime
CREATE TABLE #numbersu (number int NOT NULL)
SELECT @start = getdate()
EXEC unpack_with_insert @str, '#numbersu'
INSERT Int_UNPACK(number)
SELECT number
FROM #numbersu n
SELECT @tookms = datediff(ms, @start, getdate());
SELECT number FROM Int_UNPACK
TRUNCATE TABLE Int_UNPACK
go
CREATE PROCEDURE MANYINSERT_Str_JOIN_test
@str nvarchar(MAX),
@tookms int OUTPUT AS
DECLARE @start datetime
CREATE TABLE #list (str nvarchar(50) COLLATE database_default NOT NULL)
SELECT @start = getdate()
EXEC unpackstr_with_insert @str, '#list'
INSERT Str_JOIN(wordno, guid)
SELECT u.wordno, u.guid
FROM usrdictwords u
JOIN #list l ON l.str = u.word
SELECT @tookms = datediff(ms, @start, getdate());
SELECT wordno FROM Str_JOIN
TRUNCATE TABLE Str_JOIN
go
CREATE PROCEDURE MANYINSERT_Str_UNPACK_test
@str nvarchar(MAX),
@tookms int OUTPUT AS
DECLARE @start datetime
CREATE TABLE #listu (str nvarchar(50) COLLATE database_default NOT NULL)
SELECT @start = getdate()
EXEC unpackstr_with_insert @str, '#listu'
INSERT Str_UNPACK(word)
SELECT str
FROM #listu l
SELECT @tookms = datediff(ms, @start, getdate());
SELECT word FROM Str_UNPACK
TRUNCATE TABLE Str_UNPACK
go