Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE @StartTime DATETIME
- SET @StartTime = GETDATE()
- DECLARE @i INT
- SET @i = 0
- WHILE (@i < 1000000)
- BEGIN
- DECLARE @A SQL_VARIANT
- DECLARE @B SQL_VARIANT
- IF RAND() < 0.1
- SET @A = NULL
- ELSE
- SET @A = RAND()
- IF RAND() > 0.9
- IF RAND() < 0.1
- SET @B = NULL
- ELSE
- SET @B = RAND()
- ELSE
- SET @B = @A
- -- Test 1
- IF (@A <> @B) OR (@A IS NULL AND @B IS NOT NULL) OR (@A IS NOT NULL AND @B IS NULL) SET @i = @i + 1 ELSE SET @i = @i + 1
- -- End test 1
- -- Test 2
- -- IF EXISTS (SELECT @A EXCEPT SELECT @B) SET @i = @i + 1 ELSE SET @i = @i + 1
- -- End test 2
- -- Test 3
- -- IF (@A = @B) GOTO Equal ELSE IF @A IS NULL AND @B IS NULL GOTO Equal
- --NotEqual:
- --Equal:
- -- SET @i = @i + 1
- -- End Test3
- -- Test 4
- --IF (ISNULL(@A, 0) <> ISNULL(@B, 0)) SET @i = @i + 1 ELSE SET @i = @i + 1
- -- End Test 4
- END
- PRINT DATEDIFF(ms, @StartTime, GETDATE())
- -- IF (@A <> @B) OR (@A IS NULL AND @B IS NOT NULL) OR (@A IS NOT NULL AND @B IS NULL)
- -- 4133
- -- 3650
- -- 3976
- -- 3866
- -- 3616
- -- AVG = 3848
- -- IF EXISTS (SELECT @A EXCEPT SELECT @B)
- -- 7690
- -- 7486
- -- 7876
- -- 7676
- -- 8253
- -- AVG = 7796
- -- IF (@A = @B) GOTO Equal ELSE IF @A IS NULL AND @B IS NULL GOTO Equal
- -- 3933
- -- 4586
- -- 4326
- -- 4086
- -- 3713
- -- AVG = 4140
- -- IF (ISNULL(@A, 0) <> ISNULL(@B, 0)) SET @i = @i + 1 ELSE SET @i = @i + 1
- -- 3636
- -- 3913
- -- 3763
- -- 3973
- -- 4426
- -- AVG = 3942
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement