File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -44,27 +44,18 @@ DECLARE db_check CURSOR LOCAL FAST_FORWARD FOR
4444 SELECT /* PerformanceMonitorLite */
4545 d.name
4646 FROM sys.databases AS d
47+ LEFT JOIN sys.dm_hadr_database_replica_states AS drs
48+ ON d.database_id = drs.database_id
49+ AND drs.is_local = 1
4750 WHERE d.database_id > 4
4851 AND d.database_id < 32761
4952 AND d.state_desc = N'ONLINE'
5053 AND d.name <> N'PerformanceMonitor'
51- AND d.database_id NOT IN
52- (
53- SELECT
54- d2.database_id
55- FROM sys.databases AS d2
56- JOIN sys.availability_replicas AS r
57- ON d2.replica_id = r.replica_id
58- WHERE NOT EXISTS
59- (
60- SELECT
61- 1/0
62- FROM sys.dm_hadr_availability_group_states AS s
63- WHERE s.primary_replica = r.replica_server_name
64- )
65- AND r.secondary_role_allow_connections_desc = N'READ_ONLY'
66- AND r.replica_server_name = @@SERVERNAME
67- )
54+ AND
55+ (
56+ drs.database_id IS NULL /*not in any AG*/
57+ OR drs.is_primary_replica = 1 /*primary replica*/
58+ )
6859 OPTION(RECOMPILE);
6960
7061OPEN db_check;
Original file line number Diff line number Diff line change @@ -332,27 +332,18 @@ private async Task<int> CollectDatabaseScopedConfigAsync(ServerConnection server
332332SELECT
333333 d.name
334334FROM sys.databases AS d
335+ LEFT JOIN sys.dm_hadr_database_replica_states AS drs
336+ ON d.database_id = drs.database_id
337+ AND drs.is_local = 1
335338WHERE (d.database_id > 4 OR d.database_id = 2)
336339AND d.database_id < 32761
337340AND d.name <> N'PerformanceMonitor'
338341AND d.state_desc = N'ONLINE'
339- AND d.database_id NOT IN
340- (
341- SELECT
342- d2.database_id
343- FROM sys.databases AS d2
344- JOIN sys.availability_replicas AS r
345- ON d2.replica_id = r.replica_id
346- WHERE NOT EXISTS
347- (
348- SELECT
349- 1/0
350- FROM sys.dm_hadr_availability_group_states AS s
351- WHERE s.primary_replica = r.replica_server_name
352- )
353- AND r.secondary_role_allow_connections_desc = N'READ_ONLY'
354- AND r.replica_server_name = @@SERVERNAME
355- )
342+ AND
343+ (
344+ drs.database_id IS NULL /*not in any AG*/
345+ OR drs.is_primary_replica = 1 /*primary replica*/
346+ )
356347ORDER BY d.name
357348OPTION(RECOMPILE);" ;
358349
Original file line number Diff line number Diff line change @@ -299,28 +299,19 @@ BEGIN
299299 SELECT
300300 d .name
301301 FROM sys .databases AS d
302+ LEFT JOIN sys .dm_hadr_database_replica_states AS drs
303+ ON d .database_id = drs .database_id
304+ AND drs .is_local = 1
302305 WHERE d .state_desc = N ' ONLINE'
303306 AND d .database_id > 4
304307 AND d .is_read_only = 0
305308 AND d .name <> N ' PerformanceMonitor'
306309 AND d .database_id < 32761 /* exclude contained AG system databases*/
307- AND d .database_id NOT IN
308- (
309- SELECT
310- d2 .database_id
311- FROM sys .databases AS d2
312- JOIN sys .availability_replicas AS r
313- ON d2 .replica_id = r .replica_id
314- WHERE NOT EXISTS
315- (
316- SELECT
317- 1 / 0
318- FROM sys .dm_hadr_availability_group_states AS s
319- WHERE s .primary_replica = r .replica_server_name
320- )
321- AND r .secondary_role_allow_connections_desc = N ' READ_ONLY'
322- AND r .replica_server_name = @@SERVERNAME
323- )
310+ AND
311+ (
312+ drs .database_id IS NULL /* not in any AG*/
313+ OR drs .is_primary_replica = 1 /* primary replica*/
314+ )
324315 OPTION (RECOMPILE );
325316
326317 OPEN @db_check_cursor;
Original file line number Diff line number Diff line change @@ -161,27 +161,18 @@ BEGIN
161161 database_id = d .database_id ,
162162 database_name = d .name
163163 FROM sys .databases AS d
164+ LEFT JOIN sys .dm_hadr_database_replica_states AS drs
165+ ON d .database_id = drs .database_id
166+ AND drs .is_local = 1
164167 WHERE d .database_id > 4
165168 AND d .name != DB_NAME ()
166169 AND d .state_desc = N ' ONLINE'
167170 AND d .database_id < 32761 /* exclude contained AG system databases*/
168- AND d .database_id NOT IN
169- (
170- SELECT
171- d2 .database_id
172- FROM sys .databases AS d2
173- JOIN sys .availability_replicas AS r
174- ON d2 .replica_id = r .replica_id
175- WHERE NOT EXISTS
176- (
177- SELECT
178- 1 / 0
179- FROM sys .dm_hadr_availability_group_states AS s
180- WHERE s .primary_replica = r .replica_server_name
181- )
182- AND r .secondary_role_allow_connections_desc = N ' READ_ONLY'
183- AND r .replica_server_name = @@SERVERNAME
184- )
171+ AND
172+ (
173+ drs .database_id IS NULL /* not in any AG*/
174+ OR drs .is_primary_replica = 1 /* primary replica*/
175+ )
185176 ORDER BY
186177 d .name
187178 OPTION (RECOMPILE );
You can’t perform that action at this time.
0 commit comments