DBCC FREEPROCCACHE
SET STATISTICS TIME OFF
CREATE TABLE T
(
A VARCHAR(800),
B VARCHAR(800),
C VARCHAR(800),
D VARCHAR(800),
E VARCHAR(800),
F VARCHAR(800),
G VARCHAR(800),
H VARCHAR(800),
I VARCHAR(800),
J VARCHAR(800)
)
DECLARE @V nvarchar(max) = N',(''A#'',''B#'',''C#'',''D#'',''E#'',''F#'',''G#'',''H#'',''I#'',''J#'')'
DECLARE @I nvarchar(max)
SET @I = (
SELECT REPLACE(@V, '#',STR(number,799))
FROM master..spt_values
WHERE type='P' AND number BETWEEN 1 AND 100
FOR XML PATH(''))
SET @I = STUFF(@I,1,1,N'INSERT INTO T
VALUES ')
SET STATISTICS TIME ON
RAISERROR ('100 rows start',0,1) WITH NOWAIT
EXEC(@I)
RAISERROR ('100 rows finish',0,1) WITH NOWAIT
SET STATISTICS TIME OFF
SELECT @I = @I + N',
(''A' + STR(101,799) + N''',''B' + STR(101,799) + N''',''C' + STR(101,799) + N''',''D' + STR(101,799) + N''',''E' + STR(101,799) + N''',''F' + STR(101,799) + N''',''G' + STR(101,799) + N''',''H' + STR(101,799) + N''',''I' + STR(101,799) + N''',''J' + STR(101,799) + N''')'
SET STATISTICS TIME ON
RAISERROR ('101 rows start',0,1) WITH NOWAIT
EXEC(@I)
RAISERROR ('101 rows finish',0,1) WITH NOWAIT
SET STATISTICS TIME OFF
DECLARE @Tail nvarchar(max)
SET @Tail = (
SELECT REPLACE(@V, '#',STR(number,799))
FROM master..spt_values
WHERE type='P' AND number BETWEEN 102 AND 1000
FOR XML PATH(''))
set @I = @I + @Tail
SET STATISTICS TIME ON
RAISERROR ('1000 rows without dupes start',0,1) WITH NOWAIT
EXEC(@I)
RAISERROR ('1000 rows without dupes finish',0,1) WITH NOWAIT
SET STATISTICS TIME OFF
SET @I = (
SELECT REPLACE(@V, '#',STR(1,799))
FROM master..spt_values
WHERE type='P' AND number BETWEEN 1 AND 1000
FOR XML PATH(''))
SET @I = STUFF(@I,1,1,N'INSERT INTO T
VALUES ')
SET STATISTICS TIME ON
RAISERROR ('1000 rows with dupes start',0,1) WITH NOWAIT
EXEC(@I)
RAISERROR ('1000 rows with dupes finish',0,1) WITH NOWAIT
SET STATISTICS TIME OFF
DROP TABLE T