销售电话: 1-800-867-1380

sys.event_log

本主题已过时。可以在 SQL 14 Transact-SQL 参考中找到最新版本。

Important重要提示
本主题未经维护。有关最新版本,请参阅 sys.event_log

返回成功的 Azure SQL Database 数据库连接,以及连接失败、死锁和限制事件。你可以使用此信息跟踪与 Azure SQL Database 有关的数据库活动或执行故障排除。

sys.event_log 视图包含以下列:

 

列名 数据类型 说明

database_name

sysname

数据库的名称。如果连接失败并且用户未指定数据库名称,则此列将为空。

start_time

datetime2

聚合时间间隔开始时的 UTC 日期和时间。对于聚合事件,该时间始终是 5 分钟的倍数。例如:

'2011-09-28 16:00:00'
'2011-09-28 16:05:00'
'2011-09-28 16:10:00'

end_time

datetime2

聚合时间间隔结束时的 UTC 日期和时间。对于聚合事件,End_time 始终为同一行中相应的 start_time 之后恰好 5 分钟。对于未聚合的事件,start_timeend_time 等于该事件的实际 UTC 日期和时间。

event_category

nvarchar(64)

生成了此事件的高级别的组件。

有关可能值的列表,请参阅事件类型

event_type

nvarchar(64)

事件的类型。

有关可能值的列表,请参阅事件类型

event_subtype

int

所发生事件的子类型。

有关可能值的列表,请参阅事件类型

event_subtype_desc

nvarchar(64)

事件子类型的说明。

有关可能值的列表,请参阅事件类型

severity

int

错误的严重性。可能的值有:

0 = 信息
1 = 警告
2 = 错误

event_count

int

在指定时间间隔内(start_timeend_time)指定数据库发生此事件的次数。

description

nvarchar(max)

事件的详细说明。

有关可能值的列表,请参阅事件类型

additional_data

XML

对于 Deadlock 事件,此列包含死锁图。对于其他事件类型,此列为 NULL。

此视图中每一行记录的事件由类别 (event_category)、事件类型 (event_type) 和子类型 (event_subtype) 标识。下表列出了此视图中收集的事件的类型。

对于 connectivity 类别中的事件,摘要信息在 sys.database_connection_stats 视图中提供。

note备注
该视图并未包含可能会发生的所有 Azure SQL Database 数据库事件,在此处只是列举了一些事件。在 Azure SQL Database 的将来版本中可能还会添加其他类别、事件类型和子类型。

 

event_category event_type event_subtype event_subtype_desc severity description

connectivity

connection_successful

0

connection_successful

0

已成功连接到数据库。

connectivity

connection_failed

0

invalid_login_name

2

登录名在此版本的 SQL Server 中无效。

connectivity

connection_failed

1

windows_auth_not_supported

2

在此版本的 SQL Server 中不支持 Windows 登录名。

connectivity

connection_failed

2

attach_db_not_supported

2

用户请求附加不支持的数据库文件。

connectivity

connection_failed

3

change_password_not_supported

2

用户请求更改不支持的用户登录密码。

connectivity

connection_failed

4

login_failed_for_user

2

用户登录失败。

connectivity

connection_failed

5

login_disabled

2

该登录名已被禁用。

connectivity

connection_failed

6

failed_to_open_db

2

无法打开数据库。可能的原因是数据库不存在或者缺少用于打开数据库的身份验证。

connectivity

connection_failed

7

blocked_by_firewall

2

不允许客户端 IP 地址访问该服务器。

connectivity

connection_failed

8

client_close

2

在建立连接时客户端可能已超时。请尝试增加连接超时时间。

connectivity

connection_failed

9

reconfiguration

2

连接失败,因为数据库在此时正在进行重新配置。

connectivity

connection_terminated

0

idle_connection_timeout

2

连接处于空闲状态的时间已超过系统定义的阈值。

connectivity

throttling

<原因代码>

reason_code

2

请求受到限制。限制原因代码:<原因代码>。有关详细信息,请参阅Engine Throttling

connectivity

throttling_long_transaction

40549

long_transaction

2

由于你有长时间运行的事务,已终止会话。请尝试缩短事务运行时间。有关详细信息,请参阅Resource Limits

connectivity

throttling_long_transaction

40550

excessive_lock_usage

2

由于会话获取的锁过多,已终止该会话。请尝试在单个事务中读取或修改更少的行。有关详细信息,请参阅Resource Limits

connectivity

throttling_long_transaction

40551

excessive_tempdb_usage

2

由于过度使用 TEMPDB,已终止该会话。请尝试修改你的查询以减少使用临时表空间。有关详细信息,请参阅Resource Limits

connectivity

throttling_long_transaction

40552

excessive_log_space_usage

2

由于过度使用事务日志空间,已终止该会话。请尝试在单个事务中修改更少的行。有关详细信息,请参阅Resource Limits

connectivity

throttling_long_transaction

40553

excessive_memory_usage

2

由于过度使用内存,已终止该会话。请尝试修改你的查询以处理更少的行。有关详细信息,请参阅Resource Limits

engine

deadlock

0

deadlock

2

发生了死锁。

有权访问 master 数据库的用户对此视图具有只读访问权限。

下面的查询返回从 2011 年 9 月 25 日中午到 2011 年 9 月 28 日中午(UTC 时间)之间发生的所有事件。默认情况下,查询结果按 start_time(升序)排序。

select * from sys.event_log where start_time>='2011-09-25:12:00:00' and end_time<='2011-09-28 12:00:00'

以下查询将返回数据库 Database1 的所有死锁事件。

select * from sys.event_log where event_type='deadlock' and database_name='Database1'

下面的查询返回从 2011 年 9 月 25 日 10:00 到 11:00(UTC 时间)之间对 SQL 工作线程事件发生的所有硬限制。

select * from sys.event_log where event_type='throttling' and event_subtype=4194307 and start_time>='2011-09-25 10:00:00' and end_time<='2011-09-25 11:00:00'

此视图的事件信息在 5 分钟时间间隔内收集并聚合。event_count 列表示在某一给定时间间隔内针对特定数据库发生的特定 event_typeevent_subtype 的次数。

note备注
某些事件(例如死锁)不聚合。对于这些事件,event_count 将是 1,并且 start_timeend_time 将等于发生该事件时的实际 UTC 日期和时间。

例如,如果某个用户由于无效的登录名而在 2012 年 2 月 5 日 11:00 和 11:05(UTC 时间)之间 7 次未能连接到数据库 Database1,则此信息将在此视图的单个行中提供:

 

database_name start_time end_time event_category event_type event_subtype event_subtype_desc severity event_count description additional_data

Database1

2012-02-05 11:00:00

2012-02-05 11:05:00

connectivity

connection_failed

4

login_failed_for_user

2

7

Login failed for user.

NULL

在某个聚合间隔的之后start_time 以及之前end_time 发生某个事件时,将在该间隔中加入该事件。例如,将仅在下方显示的第二个间隔中加入正好在 2012-10-30 19:25:00.0000000 发生的事件:


start_time                    end_time
2012-10-30 19:20:00.0000000   2012-10-30 19:25:00.0000000
2012-10-30 19:25:00.0000000   2012-10-30 19:30:00.0000000

此视图中的数据随着时间而累积。通常,数据在聚合时间间隔的开始一小时内累积,但最长可能会用 24 小时以便所有数据都在视图中出现。在该时间段中,单个行中的信息可能会定期更新。

此视图中的数据最长保留 30 天,或者可能更少,视逻辑服务器中数据库的数目以及每个数据库生成的唯一事件的数目而定。若想让此信息保留更长时间,请将数据复制到单独的数据库中。在你生成视图的初始副本后,可以随着数据的累积而更新视图中的行。若要保持数据副本最新,请定期对行执行表扫描,以便查找在现有行的事件计数中的增加以及标识新行(你可以通过使用开始和结束时间来标识唯一行),然后使用这些更改更新你的数据副本。

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

  • 该视图并未包含可能会发生的所有 Azure SQL Database 数据库错误,只是包含了在本主题的事件类型中指定的那些错误。

  • 如果在 Azure SQL Database 数据中心中出现计算机故障,则事件表中可能缺少针对逻辑服务器的少量数据。

  • 如果已通过 DoSGuard 阻止了某个 IP 地址,将无法收集来自该 IP 地址的连接尝试事件并且这些连接尝试事件将不会出现在此视图中。

本文是否对您有所帮助?
(1500 个剩余字符)
感谢您的反馈
显示:
© 2014 Microsoft