@@ -16,6 +16,7 @@ ALTER PROCEDURE dbo.sp_BlitzInMemoryOLTP(
16
16
17
17
.DESCRIPTION
18
18
Get detailed information about In-Memory SQL Server objects
19
+ Tested on SQL Server: 2014, 2016, 2017
19
20
20
21
.PARAMETER @instanceLevelOnly
21
22
Only check instance In-Memory related information
@@ -46,6 +47,19 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
46
47
.NOTE
47
48
Author: Ned Otter
48
49
Original link: http://nedotter.com/archive/2017/10/in-memory-oltp-diagnostic-script/
50
+ Version: 1.0
51
+
52
+ Modified: 2017-12-06
53
+ Author: Aleksey Nagorskiy
54
+ Version: 1.1
55
+
56
+ Modified: 2017-12-13
57
+ Author: Konstantin Taranov
58
+ Version: 1.2
59
+
60
+ Modified: 2017-12-14
61
+ Author: Konstantin Taranov
62
+ Version: 1.3
49
63
*/
50
64
AS BEGIN TRY
51
65
@@ -82,6 +96,8 @@ AS BEGIN TRY
82
96
AND (name = @dbName OR @dbName = ' ALL' )
83
97
AND state_desc = ' ONLINE' ;
84
98
99
+ IF @debug = 1 SELECT ' All not system and ONLINE databases' AS AllDatabases, * FROM #inmemDatabases;
100
+
85
101
IF @dbName IS NULL AND @instanceLevelOnly = 0
86
102
BEGIN
87
103
SET @errorMessage = ' @dbName IS NULL, please specify database name or ALL' ;
@@ -160,9 +176,8 @@ AS BEGIN TRY
160
176
####################################################
161
177
*/
162
178
DECLARE @sql NVARCHAR (MAX ) = ' '
163
- ,@db NVARCHAR (257 )
164
- ,@counter INT = 1
165
- ,@MaxRows INT = (SELECT COUNT (* ) FROM #inmemDatabases);
179
+ , @counter INT = 1
180
+ , @MaxRows INT = (SELECT COUNT (* ) FROM #inmemDatabases);
166
181
167
182
WHILE @counter <= @MaxRows
168
183
BEGIN
@@ -174,35 +189,31 @@ AS BEGIN TRY
174
189
SELECT @sql + = ' ;WITH InMemDatabases AS (' ;
175
190
END
176
191
177
- IF @counter <> @MaxRows OR (@counter = 1 AND @counter = @MaxRows)
178
- SELECT @sql + =
192
+ SELECT @sql + =
193
+ CASE
194
+ WHEN @counter = 1 THEN ' ' -- there is exactly 1 database for the entire instance
195
+ ELSE @crlf + ' UNION ALL ' + @crlf
196
+ END ;
197
+
198
+ SELECT @sql + =
179
199
CONCAT
180
200
(
181
201
@crlf
182
202
,' SELECT DISTINCT '
183
203
, ' '' '
184
204
, name
185
- , ' '' AS databaseName,'
205
+ , ' '' AS databaseName,' + @crlf
186
206
, database_id
187
- , ' AS database_id FROM '
207
+ , ' AS database_id' + @crlf + ' FROM '
188
208
, name
189
- , ' .sys.database_files INNER JOIN '
209
+ , ' .sys.database_files' + @crlf + ' INNER JOIN '
190
210
, name
191
211
, ' .sys.filegroups ON database_files.data_space_id = filegroups.data_space_id WHERE filegroups.type = '' FX'' '
192
212
)
193
213
FROM #inmemDatabases
194
214
WHERE rowNumber = @counter;
195
215
196
- IF @debug = 1 PRINT (@sql);
197
-
198
-
199
- SELECT @sql + =
200
- CASE
201
- WHEN @counter = 1 AND @MaxRows = 1 THEN ' ' -- there is exactly 1 database for the entire instance
202
- WHEN @counter = @MaxRows THEN ' '
203
- WHEN @counter <> 1 AND @counter = @MaxRows - 1 THEN ' '
204
- ELSE @crlf + ' UNION ALL ' + @crlf
205
- END ;
216
+ -- IF @debug = 1 PRINT(@sql);
206
217
207
218
SELECT @counter + = 1 ;
208
219
END ;
@@ -332,8 +343,8 @@ AS BEGIN TRY
332
343
##############################################################
333
344
*/
334
345
SELECT @sql = CONCAT (
335
- ' SELECT '' List indexes on memory-optimized tables in this database' ' ,'
336
- ,' '' Indexes '' AS objects,'
346
+ ' SELECT '
347
+ ,' '' List indexes on memory-optimized tables in this database '' AS objects,'
337
348
,' '' '
338
349
,dbName
339
350
,' '' '
0 commit comments