Skip to content

Commit d34d41a

Browse files
committed
Fix issue with space in database name, unicode names, replace STRING_SPLIT on XML alternative
1 parent 938122b commit d34d41a

File tree

3 files changed

+45
-39
lines changed

3 files changed

+45
-39
lines changed

Scripts/IN_Memory_Example_2014.sql

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
-- https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/overview-and-usage-scenarios
1+
-- https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/overview-and-usage-scenarios
22
USE master;
33
GO
44

5-
IF OBJECT_ID('[TESTDB]', '') IS NOT NULL DROP DATABASE [TESTDB];
5+
IF OBJECT_ID('[ಠ ಠ]', '') IS NOT NULL DROP DATABASE [ಠ ಠ];
66
GO
77

8-
CREATE DATABASE [TESTDB]
8+
CREATE DATABASE [ಠ ಠ]
99
CONTAINMENT = NONE
1010
ON PRIMARY
11-
( NAME = N'TESTDB', FILENAME = N'd:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\TESTDB.mdf', SIZE = 128MB, MAXSIZE = UNLIMITED, FILEGROWTH = 128MB),
12-
FILEGROUP [TESTDB] CONTAINS MEMORY_OPTIMIZED_DATA DEFAULT
13-
( NAME = N'TESTDB_mod', FILENAME = N'd:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\TESTDB_mod', MAXSIZE = UNLIMITED)
11+
( NAME = N'ಠ ಠ', FILENAME = N'd:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\ಠ ಠ.mdf', SIZE = 64MB, MAXSIZE = UNLIMITED, FILEGROWTH = 64MB),
12+
FILEGROUP [ಠ ಠ] CONTAINS MEMORY_OPTIMIZED_DATA DEFAULT
13+
( NAME = N'TESTDB_mod', FILENAME = N'd:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\ಠ ಠ_mod', MAXSIZE = UNLIMITED)
1414
LOG ON
15-
( NAME = N'TESTDB_log', FILENAME = N'd:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\TESTDB_log.ldf', SIZE = 128MB, MAXSIZE = 2048MB, FILEGROWTH = 128MB)
15+
( NAME = N'TESTDB_log', FILENAME = N'd:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\ಠ ಠ_log.ldf', SIZE = 64MB, MAXSIZE = 2048MB, FILEGROWTH = 64MB)
1616
GO
1717

18-
USE TESTDB;
18+
USE [ಠ ಠ];
1919
GO
2020
-- configure recommended DB option
2121
ALTER DATABASE CURRENT SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT=ON

Scripts/IN_Memory_Example_2017.sql

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
-- https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/overview-and-usage-scenarios
1+
-- https://docs.microsoft.com/en-us/sql/relational-databases/in-memory-oltp/overview-and-usage-scenarios
22
USE master;
33

4-
CREATE DATABASE [TESTDB]
4+
CREATE DATABASE [ಠ ಠ]
55
CONTAINMENT = NONE
66
ON PRIMARY
7-
( NAME = N'TESTDB', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\TESTDB.mdf', SIZE = 64MB, MAXSIZE = UNLIMITED, FILEGROWTH = 64MB),
8-
FILEGROUP [TESTDB] CONTAINS MEMORY_OPTIMIZED_DATA DEFAULT
9-
( NAME = N'TESTDB_mod', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\TESTDB_mod', MAXSIZE = UNLIMITED)
7+
( NAME = N'ಠ ಠ', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\ಠ ಠ.mdf', SIZE = 64MB, MAXSIZE = UNLIMITED, FILEGROWTH = 64MB),
8+
FILEGROUP [ಠ ಠ] CONTAINS MEMORY_OPTIMIZED_DATA DEFAULT
9+
( NAME = N'TESTDB_mod', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\ಠ ಠ_mod', MAXSIZE = UNLIMITED)
1010
LOG ON
11-
( NAME = N'TESTDB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\TESTDB_log.ldf', SIZE = 64MB, MAXSIZE = 2048MB, FILEGROWTH = 64MB)
11+
( NAME = N'TESTDB_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\ಠ ಠ_log.ldf', SIZE = 64MB, MAXSIZE = 2048MB, FILEGROWTH = 64MB)
1212
GO
1313

14-
USE [TESTDB]
14+
USE [ಠ ಠ];
1515
GO
1616

1717
-- configure recommended DB option

Stored_Procedure/sp_BlitzInMemoryOLTP.sql

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ GO
77

88
ALTER PROCEDURE dbo.sp_BlitzInMemoryOLTP(
99
@instanceLevelOnly BIT = 0
10-
, @dbName NVARCHAR(4000) = 'ALL'
10+
, @dbName NVARCHAR(4000) = N'ALL'
1111
, @debug BIT = 0
1212
)
1313
/*
@@ -91,7 +91,7 @@ AS BEGIN TRY
9191
*/
9292

9393
IF OBJECT_ID('tempdb..#inmemDatabases') IS NOT NULL DROP TABLE #inmemDatabases;
94-
SELECT name
94+
SELECT QUOTENAME(name) AS name
9595
, database_id
9696
, ROW_NUMBER() OVER (ORDER BY name ASC) AS rowNumber
9797
INTO #inmemDatabases
@@ -110,7 +110,7 @@ AS BEGIN TRY
110110
END;
111111

112112
IF (@dbName IS NOT NULL AND @dbName <> 'ALL')
113-
AND (NOT EXISTS (SELECT 1 FROM #inmemDatabases WHERE name = @dbName) AND @instanceLevelOnly = 0)
113+
AND (NOT EXISTS (SELECT 1 FROM #inmemDatabases WHERE name = QUOTENAME(@dbName)) AND @instanceLevelOnly = 0)
114114
BEGIN
115115
SET @errorMessage = '@dbName not found in sys.databases';
116116
THROW 55002, @errorMessage, 1;
@@ -160,12 +160,18 @@ AS BEGIN TRY
160160
FROM @loadedModules
161161
WHERE rowNumber = @moduleCounter;
162162

163+
DECLARE @xml XML
164+
, @delimiter NVARCHAR(10);
165+
SET @delimiter = '_';
166+
SET @xml = CAST(('<X>'+REPLACE(@loadedModuleName, @delimiter, '</X><X>')+'</X>') AS XML);
167+
163168
INSERT #moduleSplit
164169
(
165170
value
166171
)
167-
SELECT value
168-
FROM STRING_SPLIT(@loadedModuleName, '_');
172+
SELECT C.value('.', 'NVARCHAR(1000)') AS value FROM @xml.nodes('X') as X(C);
173+
--SELECT value
174+
--FROM STRING_SPLIT(@loadedModuleName, '_');
169175

170176
SELECT @moduleCounter += 1;
171177

@@ -204,7 +210,7 @@ AS BEGIN TRY
204210
(
205211
@crlf
206212
,'SELECT DISTINCT '
207-
, ''''
213+
, 'N'''
208214
, name
209215
, ''' AS databaseName,' + @crlf
210216
, database_id
@@ -233,7 +239,7 @@ AS BEGIN TRY
233239
,'FROM InMemDatabases '
234240
,@crlf
235241
,'INNER JOIN sys.databases ON '
236-
,'sys.databases.name = InMemDatabases.databaseName;'
242+
,'QUOTENAME(sys.databases.name) = InMemDatabases.databaseName;'
237243
);
238244

239245
IF @debug = 1
@@ -308,7 +314,7 @@ AS BEGIN TRY
308314
'SELECT TOP 1'
309315
,'''Memory optimized tables'''
310316
, ' AS objects,'
311-
, ''''
317+
, ' N'''
312318
,dbName
313319
,''' AS databaseName'
314320
,', b.name AS tableName
@@ -350,9 +356,9 @@ AS BEGIN TRY
350356
SELECT @sql = CONCAT(
351357
'SELECT '
352358
,'''List indexes on memory-optimized tables in this database'' AS objects,'
353-
,''''
359+
,' N'''
354360
,dbName
355-
,''''
361+
,''''
356362
,' AS databaseName
357363
,t.name AS tableName
358364
,i.name AS indexName
@@ -414,7 +420,7 @@ AS BEGIN TRY
414420
,'''avg_chain_length for HASH indexes'''
415421
,' AS objects,'''
416422
,dbName
417-
,''''
423+
,''''
418424
,' AS databaseName'
419425
,', sch.name AS [Schema] '
420426
,', t.name AS tableName
@@ -460,8 +466,8 @@ AS BEGIN TRY
460466

461467
SELECT @sql = CONCAT(
462468
'SELECT '
463-
,'''Number of indexes per table'' AS objects,'
464-
,''''
469+
,'''Number of indexes per table'' AS objects,'
470+
,' N'''
465471
,dbName
466472
,''''
467473
,' AS databaseName
@@ -502,7 +508,7 @@ AS BEGIN TRY
502508
*/
503509
SELECT @sql = CONCAT(
504510
'SELECT ''Natively compiled modules'' AS objects,'
505-
,''''
511+
,' N'''
506512
,dbName
507513
,''''
508514
,' AS databaseName
@@ -555,7 +561,7 @@ AS BEGIN TRY
555561
)'
556562
SELECT @sql += CONCAT(
557563
'SELECT ''Loaded natively modules'' AS objects,'
558-
,''''
564+
,' N'''
559565
,dbName
560566
,''''
561567
,' AS databaseName
@@ -586,9 +592,9 @@ AS BEGIN TRY
586592

587593
SELECT @sql = CONCAT(
588594
'SELECT ''Count of Natively compiled modules'' AS objects,'
589-
,''''
595+
,' N'''
590596
,dbName
591-
,''''
597+
,' N'''
592598
,' AS databaseName
593599
, COUNT(*) AS [Number of modules]
594600
FROM '
@@ -622,7 +628,7 @@ AS BEGIN TRY
622628
AS
623629
(
624630
SELECT '
625-
,''''
631+
,'N'''
626632
,dbName
627633
,''''
628634
,' AS databaseName'
@@ -689,7 +695,7 @@ AS BEGIN TRY
689695
SELECT @sql = CONCAT(
690696
'SELECT DISTINCT '
691697
,'''LOB/Off-row data '' AS objects,'
692-
,''''
698+
,' N'''
693699
,dbName
694700
,''''
695701
,' AS databaseName'
@@ -736,7 +742,7 @@ AS BEGIN TRY
736742
SELECT @sql = CONCAT(
737743
'SELECT '
738744
,'''Database layout'' AS objects,'
739-
,''''
745+
,' N'''
740746
,dbName
741747
,''''
742748
,' AS databaseName'
@@ -790,7 +796,7 @@ AS BEGIN TRY
790796
)
791797
SELECT
792798
''Container details by container name'' AS object,'
793-
,''''
799+
,' N'''
794800
,dbName
795801
,''''
796802
,' AS databaseName
@@ -833,7 +839,7 @@ AS BEGIN TRY
833839
)
834840
SELECT
835841
''Container details by fileType and fileState'' AS object,'
836-
,''''
842+
,' N'''
837843
,dbName
838844
,''''
839845
,' AS databaseName
@@ -880,7 +886,7 @@ AS BEGIN TRY
880886
)
881887
SELECT '
882888
,'''Container file details'' AS object,'
883-
,''''
889+
,' N'''
884890
,dbName
885891
,''''
886892
,' AS databaseName
@@ -913,7 +919,7 @@ AS BEGIN TRY
913919
SELECT @sql = CONCAT(
914920
'SELECT '
915921
,'''Memory optimized table types'' AS objects,'
916-
,''''
922+
,' N'''
917923
,dbName
918924
,''' AS databaseName,'
919925
,'SCHEMA_NAME(tt.schema_id) AS [Schema]

0 commit comments

Comments
 (0)