我们有一个大型物理服务器,上面有 50 多个 dbs;有些很忙,有些很安静。
当一个 AG 中有多个 DB 时,只有其中一些有多个重做线程。我们希望具有这些线程的数据库是繁忙的。在最近的一次迁移中,我们决定注意恢复 dbs 的顺序,因为我们认为这是根据数据库创建日期决定的。但是,检查迁移后,事实并非如此。
SELECT databases.database_id,
databases.create_date,
dm_hadr_db_threads.name,
dm_hadr_db_threads.num_redo_threads,
dm_hadr_db_threads.num_parallel_redo_threads
FROM sys.dm_hadr_db_threads
INNER JOIN sys.databases ON dm_hadr_db_threads.name = databases.name
ORDER BY
dm_hadr_db_threads.num_redo_threads DESC
OPTION (RECOMPILE)
Run Code Online (Sandbox Code Playgroud)
它不是创建日期或数据库 ID。它不是按字母顺序排列的。它不是订单添加到 ag。有谁知道是什么决定了这一点?
这是 SQL Server 2019;查询来自辅助。
这是我们发现它基于 database_id 的地方:https : //www.brentozar.com/archive/2018/06/first-responder-kit-release-just-when-you-think-theres-nothing-new-left -去做/