Skip to content

Commit 5a975ac

Browse files
authored
Format code according name convention
1 parent 7ec3066 commit 5a975ac

File tree

1 file changed

+51
-50
lines changed

1 file changed

+51
-50
lines changed

Stored_Procedure/dbo.sp_BenchmarkTSQL.sql

Lines changed: 51 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@ GO
33

44

55
ALTER PROCEDURE dbo.sp_BenchmarkTSQL(
6-
@tsqlStatementBefore NVARCHAR(MAX) = NULL
7-
, @tsqlStatement NVARCHAR(MAX)
8-
, @tsqlStatementAfter NVARCHAR(MAX) = NULL
9-
, @numberOfExecution INT = 10
10-
, @saveResults BIT = 0
11-
, @skipTSQLCheck BIT = 1
12-
, @clearCache BIT = 0
13-
, @calcMedian BIT = 0
14-
, @printStepInfo BIT = 0
15-
, @durationAccuracy VARCHAR(5) = 'ss'
16-
, @dateTimeFunction VARCHAR(16) = 'SYSDATETIME'
17-
, @additionalInfo BIT = 0
6+
@tsqlStatementBefore nvarchar(max) = NULL
7+
, @tsqlStatement nvarchar(max)
8+
, @tsqlStatementAfter nvarchar(max) = NULL
9+
, @numberOfExecution int = 10
10+
, @saveResults bit = 0
11+
, @skipTSQLCheck bit = 1
12+
, @clearCache bit = 0
13+
, @calcMedian bit = 0
14+
, @printStepInfo bit = 0
15+
, @durationAccuracy varchar(5) = 'ss'
16+
, @dateTimeFunction varchar(16) = 'SYSDATETIME'
17+
, @additionalInfo bit = 0
1818
)
1919
/*
2020
.SYNOPSIS
@@ -36,7 +36,7 @@ ALTER PROCEDURE dbo.sp_BenchmarkTSQL(
3636
Number of execution TSQL statement.
3737
3838
.PARAMETER @saveResults
39-
Save benchmark details to master.dbo.BenchmarkTSQL table if @saveResults = 1. Create table if not exists (see 246 line: CREATE TABLE master.dbo.BenchmarkTSQL …).
39+
Save benchmark details to master.dbo.BenchmarkTSQL table if @saveResults = 1. Create table if not exists (see 245 line: CREATE TABLE master.dbo.BenchmarkTSQL …).
4040
4141
.PARAMETER @skipTSQLCheck
4242
Checking for valid TSQL statement. Default value is 1 (true) - skip checking.
@@ -108,7 +108,7 @@ ALTER PROCEDURE dbo.sp_BenchmarkTSQL(
108108

109109
.EXAMPLE
110110
DECLARE @tsql nvarchar(max) = N'SET NOCOUNT OFF; DECLARE @tsql nvarchar(max) = N''BACKUP DATABASE [master] TO DISK = N''''C:\master'' +
111-
REPLACE(CAST(CAST(GETDATE() AS DATETIME2(7)) AS NVARCHAR(MAX)), '':'', '' '') +
111+
REPLACE(CAST(CAST(GETDATE() AS datetime2(7)) AS nvarchar(max)), '':'', '' '') +
112112
''.bak'''' WITH NOFORMAT, NOINIT;''
113113
EXECUTE sp_executesql @tsql;';
114114
EXEC sp_BenchmarkTSQL
@@ -128,7 +128,7 @@ The above copyright notice and this permission notice shall be included in all c
128128
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
129129

130130
.NOTE
131-
Version: 5.3
131+
Version: 5.4
132132
Created: 2017-12-14 by Konstantin Taranov
133133
Modified: 2019-04-18 by Konstantin Taranov
134134
Main contributors: Konstantin Taranov, Aleksei Nagorskii
@@ -139,24 +139,24 @@ BEGIN TRY
139139

140140
SET NOCOUNT ON;
141141

142-
DECLARE @startTime DATETIME2(7) = CASE WHEN @dateTimeFunction = 'SYSDATETIME' THEN SYSDATETIME()
142+
DECLARE @startTime datetime2(7) = CASE WHEN @dateTimeFunction = 'SYSDATETIME' THEN SYSDATETIME()
143143
WHEN @dateTimeFunction = 'SYSUTCDATETIME' THEN SYSUTCDATETIME()
144144
END;
145145

146146
DECLARE @originalLogin sysname = QUOTENAME(ORIGINAL_LOGIN()); /* https://sqlstudies.com/2015/06/24/which-user-function-do-i-use/ */
147147
DECLARE @err_msg nvarchar(max);
148-
DECLARE @RaiseError nvarchar(2000);
148+
DECLARE @raiseError nvarchar(2000);
149149

150150
/* Using RAISEEROR for interactive step printing http://sqlity.net/en/984/print-vs-raiserror/ */
151-
SET @RaiseError = 'Benchmark started at ' + CONVERT(VARCHAR(27), @startTime, 121) + ' by ' + @originalLogin;
152-
RAISERROR(@RaiseError, 0, 1) WITH NOWAIT;
151+
SET @raiseError = 'Benchmark started at ' + CONVERT(varchar(27), @startTime, 121) + ' by ' + @originalLogin;
152+
RAISERROR(@raiseError, 0, 1) WITH NOWAIT;
153153

154154
DECLARE @productMajorVersion sql_variant = SERVERPROPERTY('ProductMajorVersion');
155-
IF CAST(@productMajorVersion AS INT) < 10
155+
IF CAST(@productMajorVersion AS int) < 10
156156
BEGIN
157157
DECLARE @MsgError varchar(2000) = 'Stored procedure sp_BenchmarkTSQL works only for SQL Server 2008 and higher. Yor ProductMajorVersion is ' +
158-
CAST(@productMajorVersion AS VARCHAR(30)) +
159-
'. You can try to replace DATETIME2 data type on DATETIME, perhaps it will be enough.';
158+
CAST(@productMajorVersion AS varchar(30)) +
159+
'. You can try to replace datetime2 data type on datetime, perhaps it will be enough.';
160160
THROW 55001, @MsgError, 1;
161161
END;
162162

@@ -181,7 +181,7 @@ BEGIN TRY
181181
THROW 55005, '@dateTimeFunction accept only SYSDATETIME and SYSUTCDATETIME. Default value is SYSDATETIME. See https://docs.microsoft.com/en-us/sql/t-sql/functions/date-and-time-data-types-and-functions-transact-sql', 1;
182182

183183
IF @numberOfExecution <= 0 OR @numberOfExecution >= 32000
184-
THROW 55006, '@numberOfExecution must be > 0 and < 32000. If you want more execution then comment 180 and 181 lines.', 1;
184+
THROW 55006, '@numberOfExecution must be > 0 and < 32000. If you want more execution then comment 183 and 184 lines.', 1;
185185

186186
IF @skipTSQLCheck = 0
187187
BEGIN
@@ -240,7 +240,7 @@ BEGIN TRY
240240
END;
241241
END;
242242

243-
IF @saveResults = 1 AND OBJECT_ID('master.dbo.BenchmarkTSQL', 'U') IS NULL
243+
IF @saveResults = 1 AND OBJECT_ID(N'master.dbo.BenchmarkTSQL', 'U') IS NULL
244244
THROW 55010, 'Please create master.dbo.BenchmarkTSQL log table before run procedure with @saveResults = 1.
245245
CREATE TABLE master.dbo.BenchmarkTSQL(
246246
BenchmarkTSQLID int IDENTITY NOT NULL
@@ -267,7 +267,7 @@ BEGIN TRY
267267
DECLARE @avg bigint;
268268
DECLARE @max bigint;
269269
DECLARE @median real;
270-
DECLARE @plan_handle varbinary(64);
270+
DECLARE @planHandle varbinary(64);
271271
DECLARE @startStep datetime2(7);
272272
DECLARE @finishTime datetime2(7);
273273
DECLARE @stepDuration int;
@@ -322,12 +322,12 @@ BEGIN TRY
322322

323323
IF @clearCache = 1
324324
BEGIN
325-
SELECT @plan_handle = plan_handle
325+
SELECT @planHandle = plan_handle
326326
FROM sys.dm_exec_cached_plans
327327
CROSS APPLY sys.dm_exec_sql_text(plan_handle)
328-
WHERE [text] LIKE @tsqlStatement; /* LIKE instead = (equal) because = ignore trailing spaces */
328+
WHERE [text] LIKE @tsqlStatement; /* LIKE instead = (equal) because = (equal) ignore trailing spaces */
329329

330-
IF @plan_handle IS NOT NULL DBCC FREEPROCCACHE (@plan_handle);
330+
IF @planHandle IS NOT NULL DBCC FREEPROCCACHE(@planHandle);
331331
END;
332332

333333
IF @tsqlStatementBefore IS NOT NULL AND @tsqlStatementBefore <> ''
@@ -449,17 +449,17 @@ BEGIN TRY
449449
IF @printStepInfo = 1
450450
BEGIN
451451
/* Using RAISEEROR for interactive step printing http://sqlity.net/en/984/print-vs-raiserror/ */
452-
SET @RaiseError = 'Run ' + CASE WHEN @stepNumber < 10 THEN ' ' + CAST(@stepNumber AS VARCHAR(30))
453-
WHEN @stepNumber < 100 THEN ' ' + CAST(@stepNumber AS VARCHAR(30))
454-
WHEN @stepNumber < 1000 THEN ' ' + CAST(@stepNumber AS VARCHAR(30))
455-
ELSE CAST(@stepNumber AS VARCHAR(30))
452+
SET @raiseError = 'Run ' + CASE WHEN @stepNumber < 10 THEN ' ' + CAST(@stepNumber AS varchar(30))
453+
WHEN @stepNumber < 100 THEN ' ' + CAST(@stepNumber AS varchar(30))
454+
WHEN @stepNumber < 1000 THEN ' ' + CAST(@stepNumber AS varchar(30))
455+
ELSE CAST(@stepNumber AS varchar(30))
456456
END +
457-
', start: ' + CONVERT(VARCHAR(27), @startStep, 121) +
458-
', finish: ' + CONVERT(VARCHAR(27), CASE WHEN @dateTimeFunction = 'SYSDATETIME' THEN SYSDATETIME()
457+
', start: ' + CONVERT(varchar(27), @startStep, 121) +
458+
', finish: ' + CONVERT(varchar(27), CASE WHEN @dateTimeFunction = 'SYSDATETIME' THEN SYSDATETIME()
459459
WHEN @dateTimeFunction = 'SYSUTCDATETIME' THEN SYSUTCDATETIME()
460460
END, 121) +
461-
', step duration: ' + CAST(@stepDuration AS VARCHAR(100)) + @durationAccuracy + '.';
462-
RAISERROR(@RaiseError, 0, 1) WITH NOWAIT;
461+
', step duration: ' + CAST(@stepDuration AS varchar(100)) + @durationAccuracy + '.';
462+
RAISERROR(@raiseError, 0, 1) WITH NOWAIT;
463463
END;
464464

465465
IF @tsqlStatementAfter IS NOT NULL AND @tsqlStatementAfter <> ''
@@ -470,7 +470,7 @@ BEGIN TRY
470470
SELECT @min = MIN(StepDuration), @avg = AVG(StepDuration), @max = MAX(StepDuration)
471471
FROM @BenchmarkTSQL;
472472

473-
DECLARE @endBenchmark DATETIME2(7) = CASE WHEN @dateTimeFunction = 'SYSDATETIME' THEN SYSDATETIME()
473+
DECLARE @endBenchmark datetime2(7) = CASE WHEN @dateTimeFunction = 'SYSDATETIME' THEN SYSDATETIME()
474474
WHEN @dateTimeFunction = 'SYSUTCDATETIME' THEN SYSUTCDATETIME()
475475
END;
476476

@@ -526,17 +526,17 @@ BEGIN TRY
526526
END;
527527

528528
/* Using RAISEEROR for interactive step printing http://sqlity.net/en/984/print-vs-raiserror/ */
529-
SET @RaiseError = @crlf +
530-
'Min: ' + CAST(@min AS VARCHAR(30)) + @durationAccuracy +
531-
', Max: ' + CAST(@max AS VARCHAR(30)) + @durationAccuracy +
532-
', Average: ' + CAST(@avg AS VARCHAR(30)) + @durationAccuracy +
533-
CASE WHEN @calcMedian = 1 THEN ', Median: ' + CAST(@median AS VARCHAR(30)) + @durationAccuracy ELSE '' END +
529+
SET @raiseError = @crlf +
530+
'Min: ' + CAST(@min AS varchar(30)) + @durationAccuracy +
531+
', Max: ' + CAST(@max AS varchar(30)) + @durationAccuracy +
532+
', Average: ' + CAST(@avg AS varchar(30)) + @durationAccuracy +
533+
CASE WHEN @calcMedian = 1 THEN ', Median: ' + CAST(@median AS varchar(30)) + @durationAccuracy ELSE '' END +
534534
@crlf +
535-
'Benchmark finished at ' + CONVERT(VARCHAR(23), @endTime, 121) +
535+
'Benchmark finished at ' + CONVERT(varchar(23), @endTime, 121) +
536536
' by ' + @originalLogin;
537-
RAISERROR(@RaiseError, 0, 1) WITH NOWAIT;
537+
RAISERROR(@raiseError, 0, 1) WITH NOWAIT;
538538

539-
DECLARE @BenchmarkDuration bigint = CASE WHEN @durationAccuracy = 'ns' THEN DATEDIFF(ns, @startTime, @endBenchmark)
539+
DECLARE @benchmarkDuration bigint = CASE WHEN @durationAccuracy = 'ns' THEN DATEDIFF(ns, @startTime, @endBenchmark)
540540
WHEN @durationAccuracy = 'mcs' THEN DATEDIFF(mcs, @startTime, @endBenchmark)
541541
WHEN @durationAccuracy = 'ms' THEN DATEDIFF(ms, @startTime, @endBenchmark)
542542
WHEN @durationAccuracy = 'ss' THEN DATEDIFF(ss, @startTime, @endBenchmark)
@@ -548,24 +548,25 @@ BEGIN TRY
548548
END;
549549

550550
/* Using RAISEEROR for interactive step printing http://sqlity.net/en/984/print-vs-raiserror/ */
551-
SET @RaiseError = @crlf + 'Duration of benchmark: ' + CAST(@BenchmarkDuration AS VARCHAR(30)) + @durationAccuracy + '.' + @crlf + + @crlf;
552-
RAISERROR(@RaiseError, 0, 1) WITH NOWAIT;
551+
SET @raiseError = @crlf + 'Duration of benchmark: ' + CAST(@benchmarkDuration AS varchar(30)) + @durationAccuracy + '.' + @crlf + + @crlf;
552+
RAISERROR(@raiseError, 0, 1) WITH NOWAIT;
553553

554554
END TRY
555555

556556
BEGIN CATCH
557-
PRINT 'Error: ' + CONVERT(varchar(50), ERROR_NUMBER()) +
557+
PRINT('Error: ' + CONVERT(varchar(50), ERROR_NUMBER()) +
558558
', Severity: ' + CONVERT(varchar(5), ERROR_SEVERITY()) +
559559
', State: ' + CONVERT(varchar(5), ERROR_STATE()) +
560560
', Procedure: ' + ISNULL(ERROR_PROCEDURE(), '-') +
561561
', Line: ' + CONVERT(varchar(5), ERROR_LINE()) +
562-
', User name: ' + CONVERT(sysname, ORIGINAL_LOGIN());
562+
', User name: ' + CONVERT(sysname, ORIGINAL_LOGIN())
563+
);
563564
PRINT(ERROR_MESSAGE());
564565

565566
IF ERROR_NUMBER() = 535
566567
PRINT('Your @durationAccuracy = ' + @durationAccuracy +
567568
'. Try to use @durationAccuracy with a less precise datepart - seconds (ss) or minutes (mm) or days (dd).' + @crlf +
568-
'But in log table master.dbo.BenchmarkTSQL (if you run stored procedure with @saveResult = 1) all times saving with DATETIME2(7) precise!' + @crlf +
569+
'But in log table master.dbo.BenchmarkTSQL (if you run stored procedure with @saveResult = 1) all times saving with datetime2(7) precise!' + @crlf +
569570
'You can manualy calculate difference after decreasing precise datepart.' + @crlf +
570571
'For analyze log table see latest examples in document section.') + @crlf + + @crlf;
571572
END CATCH;

0 commit comments

Comments
 (0)