sys.database_connection_stats(Azure SQL 数据库)

适用于:Azure SQL 数据库

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

统计信息 类型 描述
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_count、terminated_connection_count和throttled_connection_count的总,不包括死锁事件。
connection_failure_count int 登录失败数。
terminated_connection_count int 此列未使用,保留为向后兼容性。
throttled_connection_count int 此列未使用,保留为向后兼容性。

注解

事件聚合

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

例如,如果用户在 2022 年 3 月 30 日 11:00 到 11:05 之间无法连接到数据库 Database1 7 次(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 数据库)。
  • 如果SQL 数据库数据中心内发生计算机故障,则事件表中可能缺少少量数据。
  • 如果通过 DoSGuard 阻止了 IP 地址,则无法收集来自该 IP 地址的连接尝试事件,并且不会在此视图中显示。

权限

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

示例

此示例查询sys.database_connection_stats返回在 2022 年 3 月 29 日中午到 2022 年 3 月 30 日中午(UTC)之间发生的数据库连接的摘要。 连接到Azure SQL 数据库逻辑服务器上的 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 数据库: