· 8 years ago · Jun 01, 2018, 04:20 PM
1CREATE TABLE my_table1 (
2 field1 VARCHAR(256) NOT NULL,
3 field2 VARCHAR(256) NOT NULL,
4 field3 VARCHAR(256) NOT NULL
5);
6CREATE INDEX idx_field1 ON my_table1(field1);
7
8GO
9
10CREATE PROCEDURE insertToTable1
11 @field1 VARCHAR(256), @field2 varchar(256), @field3 varchar(256)
12AS
13BEGIN
14 SET NOCOUNT ON
15
16 IF NOT EXISTS (SELECT * FROM my_table1 WHERE field1 = @field1)
17 INSERT INTO my_table1
18 (field1, field2, field3)
19 VALUES (@field1, @field2, @field3);
20 ELSE
21 THROW 50000, 'xxxxxx', 1;
22 END
23GO
24
25CREATE TABLE my_table2 (
26 field1 VARCHAR(256) NOT NULL,
27 field2 VARCHAR(256) NOT NULL,
28 field3 VARCHAR(256) NOT NULL
29);
30CREATE UNIQUE INDEX idx_field1 ON my_table2(field1);
31
32
33GO
34
35CREATE PROCEDURE insertToTable2
36 @field1 VARCHAR(256), @field2 varchar(256), @field3 varchar(256)
37AS
38BEGIN
39 SET NOCOUNT ON
40 INSERT INTO my_table2
41 (field1, field2, field3)
42 VALUES (@field1, @field2, @field3);
43 END
44GO
45
46SET NOCOUNT ON
47
48PRINT 'Testing non unique'
49PRINT SYSUTCDATETIME()
50DECLARE @I INT = 0
51WHILE @I < 1000000
52BEGIN
53DECLARE @field1 VARCHAR(256) = CONVERT(CHAR(32), CRYPT_GEN_RANDOM(16),2),
54 @field2 varchar(256) = CONVERT(CHAR(130), CRYPT_GEN_RANDOM(65),2),
55 @field3 varchar(256) = CONVERT(CHAR(64), CRYPT_GEN_RANDOM(32),2)
56
57EXEC insertToTable1 @field1, @field2, @field3
58
59IF @I % 100000 = 0
60 PRINT SYSUTCDATETIME()
61
62SET @I = @I + 1;
63END
64PRINT SYSUTCDATETIME()
65
66
67
68--DATAFILE AND LOGFILE presized to 4GB
69
70
71
72go
73
74PRINT 'Testing unique'
75PRINT SYSUTCDATETIME()
76SET NOCOUNT ON
77
78DECLARE @I INT = 0
79WHILE @I < 1000000
80BEGIN
81DECLARE @field1 VARCHAR(256) = CONVERT(CHAR(32), CRYPT_GEN_RANDOM(16),2),
82 @field2 varchar(256) = CONVERT(CHAR(130), CRYPT_GEN_RANDOM(65),2),
83 @field3 varchar(256) = CONVERT(CHAR(64), CRYPT_GEN_RANDOM(32),2)
84
85EXEC insertToTable2 @field1, @field2, @field3
86
87IF @I % 100000 = 0
88 PRINT SYSUTCDATETIME()
89
90SET @I = @I + 1;
91END
92PRINT SYSUTCDATETIME()