sys.database_connection_stats (Azure SQL Database)

适用于:Azure SQL 数据库

包含SQL 数据库数据库连接事件的统计信息,提供数据库连接成功和失败的概述。 有关连接事件的详细信息,请参阅 sys.event_log (Azure SQL Database) 中的事件类型。

统计信息 类型 说明
database_name sysname 数据库的名称。
start_time datetime2 聚合间隔开始的 UTC 日期和时间。 时间始终为 5 分钟的倍数。 例如:

'2022-03-30 16:00:00'
'2022-03-30 16:05:00'
'2022-03-30 16:10:00'
end_time datetime2 聚合间隔结束的 UTC 日期和时间。 End_time 始终比同一行中的相应 start_time 晚 5 分钟。
success_count int 成功连接数。
total_failure_count int 失败连接的总数。 这是 connection_failure_countterminated_connection_countthrottled_connection_count的总和,不包括死锁事件。
connection_failure_count int 登录失败数。
terminated_connection_count int 此列未使用,保留此列是为了向后兼容。
throttled_connection_count int 此列未使用,保留此列是为了向后兼容。

备注

事件聚合

在 5 分钟的间隔内收集和聚合此视图的事件信息。 计数列表示特定连接事件在给定的时间间隔内针对特定数据库发生的次数。

例如,如果用户在 2022 年 3 月 30 日 11:00 到 11:05 之间七次未能连接到数据库数据库 1, (UTC) ,则此视图中的单个行中提供了此信息:

database_name start_time end_time success_count total_failure_count connection_failure_count terminated_connection_count throttled_connection_count
Database1 2022-03-30 11:00:00 2022-03-30 11:05:00 0 7 7 0 0

间隔 start_time 和 end_time

当事件发生start_time之后以及该间隔的end_time之前,事件将包含在聚合间隔中。 例如,恰好在 2022-03-30 19:25:00.0000000 发生的事件将只包含在如下所示的第二个间隔内:

start_time                    end_time  
2022-03-30 19:20:00.0000000   2022-03-30 19:25:00.0000000  
2022-03-30 19:25:00.0000000   2022-03-30 19:30:00.0000000  

数据更新

此视图中的数据会随时间推移而累积。 通常,数据将在聚合间隔开始后的一小时内累积,但可能需要多达 24 小时才能使所有数据都出现在此视图中。 在此期间,可能会定期更新单一行中的信息。

数据保留

此视图中的数据最多保留 30 天,或可能更少,具体取决于数据库数和每个数据库生成的唯一事件数。 要将此信息保留更长期间,请将数据复制到单独的数据库。 在对视图进行初始复制后,视图中的行可能会随数据的累积而进行更新。 为了使数据副本保持最新状态,请定期对表中的行进行扫描,以查看现有行的事件计数的增加并确定新行(您可以通过使用开始时间和结束时间来确定唯一的行),然后使用这些更改更新您的数据副本。

不包括错误

此视图可能并未包含所有连接和错误信息:

  • 此视图不包括可能发生的所有SQL 数据库数据库错误,仅包含 sys.event_log (Azure SQL Database) 中的事件类型中指定的错误。
  • 如果SQL 数据库数据中心内发生计算机故障,则事件表中可能缺少少量数据。
  • 如果通过 DoSGuard 阻止了某个 IP 地址,则无法收集来自该 IP 地址的连接尝试事件,并且不会在此视图中显示。

权限

需要访问 Azure SQL 数据库中逻辑服务器上的master 数据库的权限。

示例

此示例查询 sys.database_connection_stats 返回 2022 年 3 月 29 日中午到 2022 年 3 月 30 日中午之间的数据库连接摘要, (UTC) 。 连接到 Azure SQL Database 中的逻辑服务器上的master 数据库以运行查询。

SELECT database_name, start_time, end_time, success_count, total_failure_count, connection_failure_count
FROM sys.database_connection_stats
WHERE start_time>='2022-03-29 12:00:00' and end_time<='2022-03-30 12:00:00'
ORDER BY start_time ASC; 

后续步骤

通过以下文章详细了解 Azure SQL 数据库: