Skip to content

Commit 1597640

Browse files
authored
Merge pull request ktaranov#118 from fenixfx/patch-8
Update sp_BenchmarkTSQL.sql
2 parents 8f8d8bf + 80ecea1 commit 1597640

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

Stored_Procedure/sp_BenchmarkTSQL.sql

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
IF OBJECT_ID('dbo.sp_BenchmarkTSQL', 'P') IS NULL
2-
EXECUTE ('CREATE PROCEDURE dbo.sp_BenchmarkTSQL AS SELECT 1');
2+
EXECUTE ('CREATE PROCEDURE dbo.sp_BenchmarkTSQL AS SELECT 1;');
33
GO
4-
ALTER PROCEDURE [dbo].[sp_BenchmarkTSQL]
5-
(
4+
ALTER PROCEDURE dbo.sp_BenchmarkTSQL(
65
@tsqlStatement NVARCHAR(MAX) = N''
76
, @numberOfExecution INT = 10
87
, @saveResults BIT = 0
98
, @clearCache BIT = 0
109
, @calcMedian BIT = 0
1110
)
12-
AS
1311
/*
1412
.SYNOPSIS
1513
Calculate SQL statement execution time, save results if need.
@@ -44,8 +42,10 @@ AS
4442
.NOTE
4543
Author: Aleksei Nagorskii
4644
*/
45+
AS
4746
BEGIN TRY
48-
SET NOCOUNT OFF;
47+
48+
SET NOCOUNT ON;
4949

5050
IF @tsqlStatement IS NULL
5151
THROW 55001, '@tsqlStatement is NULL, please specify TSQL statement.', 1;
@@ -70,6 +70,7 @@ BEGIN TRY
7070
THROW 55002, @err_msg, 1;
7171
END
7272

73+
DECLARE @crlf VARCHAR(10) = CHAR(10);
7374
DECLARE @cts DATETIME = CURRENT_TIMESTAMP;
7475
DECLARE @r INT = 0;
7576
DECLARE @handle VARBINARY(64);
@@ -87,7 +88,7 @@ BEGIN TRY
8788
ClearCache BIT
8889
);
8990

90-
PRINT CONCAT('Benchmark started at ', CONVERT(VARCHAR(23), CURRENT_TIMESTAMP, 121))
91+
PRINT ('Benchmark started at ' + CONVERT(VARCHAR(23), CURRENT_TIMESTAMP, 121))
9192
WHILE @r < @numberOfExecution
9293
BEGIN
9394
SET @r = @r + 1;
@@ -102,7 +103,7 @@ BEGIN TRY
102103
DBCC FREEPROCCACHE (@handle);
103104
END
104105
EXECUTE sp_executesql @tsqlStatement;
105-
PRINT CONCAT('Run ', @r, ', start at ', CONVERT(VARCHAR(23), @rts, 121), ', finish at ', CONVERT(VARCHAR(23), CURRENT_TIMESTAMP, 121),', duration: ', DATEDIFF(ms, @rts, CURRENT_TIMESTAMP), 'ms.');
106+
PRINT ('Run ' + CAST(@r AS VARCHAR(30)) + ', start at ' + CONVERT(VARCHAR(23), @rts, 121) + ', finish at ' + CONVERT(VARCHAR(23), CURRENT_TIMESTAMP, 121) + ', duration: ' + CAST(DATEDIFF(ms, @rts, CURRENT_TIMESTAMP) AS VARCHAR(MAX)) + 'ms.');
106107
INSERT @t
107108
VALUES(
108109
@cts,
@@ -125,15 +126,17 @@ BEGIN TRY
125126
(SELECT MIN(TMAX) FROM
126127
(SELECT TOP 50 PERCENT DATEDIFF(ms, RunTimeStamp, FinishTimeStamp) AS TMAX FROM @t ORDER BY TMAX DESC) AS TopHalf)
127128
) / 2.0
128-
PRINT CONCAT('Min: ', @min, 'ms, average: ', @avg, 'ms, max: ', @max, 'ms, median: ', @median, 'ms.', CHAR(13), 'Benchmark finished at ', CONVERT(VARCHAR(23), CURRENT_TIMESTAMP, 121), '.')
129+
PRINT ('Min: ' + CAST(@min AS VARCHAR(30)) + 'ms, average: ' + CAST(@avg AS VARCHAR(30)) + 'ms, max: ' + CAST(@max AS VARCHAR(30)) + 'ms, median: ' + CAST(@median AS VARCHAR(30)) + 'ms.' + @crlf + 'Benchmark finished at ' + CONVERT(VARCHAR(23), CURRENT_TIMESTAMP, 121) + '.')
129130
END
130131
ELSE
131-
PRINT CONCAT('Min: ', @min, 'ms, average: ', @avg, 'ms, max: ', @max, 'ms.', CHAR(13), 'Benchmark finished at ', CONVERT(VARCHAR(23), CURRENT_TIMESTAMP, 121), '.')
132+
PRINT ('Min: ' + CAST(@min AS VARCHAR(30)) + 'ms, average: ' + CAST(@avg AS VARCHAR(30)) + 'ms, max: ' + CAST(@max AS VARCHAR(30)) + 'ms.' + @crlf + 'Benchmark finished at ' + CONVERT(VARCHAR(23), CURRENT_TIMESTAMP, 121) + '.')
132133
IF @saveResults = 1
133134
IF OBJECT_ID('.[dbo].[BenchmarkTSQL]', 'U') IS NULL
134135
SELECT * INTO [dbo].[BenchmarkTSQL] FROM @t
135136
ELSE
136-
INSERT INTO [dbo].[BenchmarkTSQL] SELECT * FROM @t
137+
INSERT INTO [dbo].[BenchmarkTSQL] SELECT * FROM @t;
138+
139+
SET NOCOUNT ON;
137140
END TRY
138141

139142
BEGIN CATCH

0 commit comments

Comments
 (0)