如何编写Kusto查询统计各SQL Server数据库数,筛选弹性池候选服务器
解决方法
你可以通过拆分数据库资源的id字段提取所属SQL Server名称,无需额外关联microsoft.sql/servers资源——因为数据库的资源ID已经包含了服务器信息。以下是满足需求的Kusto查询:
resources | where type == 'microsoft.sql/servers/databases' // 排除系统数据库(弹性池一般仅包含用户数据库,不需要可删除此行) | where name !in ('master', 'tempdb', 'model', 'msdb') // 从资源ID中拆分出服务器名称 | parse id with * '/servers/' serverName '/databases/' * // 按服务器分组统计数据库数量 | summarize NumberOfDatabases = count() by serverName // 按需排序(比如按数据库数量降序,不需要可删除此行) | sort by NumberOfDatabases desc
查询说明:
- 系统数据库过滤:默认排除了master等系统库,若需要统计所有数据库可移除该过滤条件。
- 服务器名称提取:用
parse命令从资源路径中直接拆分服务器名称,比跨资源关联更高效。 - 分组统计:最终输出结果完全匹配你期望的表格格式,按服务器名称展示对应的数据库数量。
内容的提问来源于stack exchange,提问作者Francesco Mantovani
相关产品推荐
相关产品推荐

