你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
配置诊断遥测的流式导出 - Azure SQL 数据库和 Azure SQL 托管实例
适用于: Azure SQL 数据库 Azure SQL 托管实例
本文介绍可导出到多个目标之一以进行分析的 Azure SQL 数据库性能指标和资源日志。 其中将会介绍如何通过 Azure 门户、PowerShell、Azure CLI、REST API 和 Azure 资源管理器模板配置这些诊断遥测数据的流式导出。
此外,介绍可将此诊断遥测数据流式传输到哪些目标,以及如何选择不同的目标。 目标选项包括:
导出的诊断遥测
可以导出各种性能指标和其他数据库日志。 下表描述了可以配置为流式导出到多个目标之一的性能指标和资源日志。 可为单一数据库、弹性池和共用数据库以及 SQL 托管实例及其数据库配置此诊断遥测。
数据库的诊断遥测 | Azure SQL 数据库支持 | Azure SQL 托管实例支持 |
---|---|---|
基本指标:包含 DTU/CPU 百分比、DTU/CPU 限制、物理数据读取百分比、日志写入百分比、成功/失败/防火墙阻止的连接数、会话百分比、辅助角色百分比、存储、存储百分比和 XTP 存储百分比。 | 是 | 否 |
实例和应用高级指标:包含所使用的 tempdb 系统数据库数据和日志文件大小以及 tempdb 百分比日志文件。 |
是 | 否 |
QueryStoreRuntimeStatistics:包含有关查询运行时统计信息的信息,例如 CPU 使用率、查询持续时间统计信息。 | 是 | 是 |
QueryStoreWaitStatistics:包含有关查询等待统计信息的信息(查询正在等待什么),例如 CPU、日志和锁定。 | 是 | 是 |
错误:包含有关数据库发生的 SQL 错误的信息。 | 是 | 是 |
DatabaseWaitStatistics:包含有关数据库针对不同等待类型花费多少时间等待的信息。 | 是 | 否 |
Timeouts:包含有关数据库发生的超时的信息。 | 是 | 否 |
Blocks:包含有关数据库发生的阻塞事件的信息。 | 是 | 否 |
死锁数:包含有关数据库发生的死锁事件的信息。 | 是 | 否 |
AutomaticTuning:包含有关数据库的自动优化建议的信息。 | 是 | 否 |
SQLInsights:包含针对数据库性能的智能见解。 有关详细信息,请参阅智能见解。 | 是 | 是 |
工作负荷管理:仅适用于 Azure Synapse 有关详细信息,请参阅 Azure Synapse Analytics - 工作负荷管理门户监视 | 否 | 否 |
注意
在 Azure SQL 托管实例中,不能为系统数据库(例如 master
、msdb
、model
、资源和 tempdb
数据库)配置诊断设置。
流式导出目标
此诊断遥测数据可流式传输到以下 Azure 资源之一进行分析。
-
流式传输到 Log Analytics 工作区的数据可由 SQL Analytics 使用。 SQL Analytics 是一种仅限云的监视解决方案,提供对数据库的智能监视,其中包括性能报表、警报和缓解建议。 流式传输到 Log Analytics 工作区的数据可以使用其他收集到的监视数据进行分析,通过这些数据还可以使用其他 Azure Monitor 功能,例如警报和可视化效果
-
将数据流式传输到 Azure 事件中心可提供以下功能:
- 将日志流式传输到第三方日志记录和遥测系统:将所有指标和资源日志流式传输到单个事件中心,以通过管道将日志数据传送到第三方 SIEM 或日志分析工具。
- 生成自定义遥测和日志记录平台:可利用 Azure 事件中心的高度可扩展的发布-订阅特性灵活地将指标和资源日志引入自定义遥测平台。 有关详细信息,请参阅 Azure 事件中心。
- 通过将数据流式传输到 Power BI 来查看服务运行状况:使用事件中心、流分析和 Power BI 将诊断数据转化成有关 Azure 服务的准实时见解。 有关此解决方案的详细信息,请参阅流分析和 Power BI:用于流式处理数据的实时分析仪表板。
Azure 存储 :
将数据流式传输到 Azure 存储可以存档大量诊断遥测数据,并且成本只是前两种流式传输选项的一小部分。
流式传输到这些目标之一的诊断遥测数据可用于度量资源利用率和查询执行统计信息,以便更轻松地监视性能。
启用和配置诊断遥测数据的流式导出
可使用以下方法之一来启用和管理指标与诊断遥测日志记录:
- Azure 门户
- PowerShell
- Azure CLI
- Azure Monitor REST API
- Azure Resource Manager 模板
注意
若要启用安全遥测的审核日志流式传输,请参阅为数据库设置审核以及 Azure Monitor 日志和 Azure 事件中心中的审核日志。
配置诊断遥测数据的流式导出
可以使用 Azure 门户中的“诊断设置”菜单来启用和配置诊断遥测数据的流式传输。 此外,还可以使用 PowerShell、Azure CLI、REST API 和资源管理器模板来配置诊断遥测数据的流式传输。 可设置以下目标来流式传输诊断遥测数据:Azure 存储、Azure 事件中心和 Azure Monitor 日志。
重要
默认不会启用诊断遥测数据的流式导出。
选择以下选项卡之一,获取有关在 Azure 门户中配置诊断遥测数据的流式导出的分步指导,以及用于在 PowerShell 和 Azure CLI 中实现相同目的的脚本。
Azure SQL 数据库中的弹性池
可将弹性池资源设置为收集以下诊断遥测数据:
资源 | 监视遥测数据 |
---|---|
弹性池 | 基本指标包含 eDTU/CPU 百分比、eDTU/CPU 限制、物理数据读取百分比、日志写入百分比、会话百分比、辅助角色百分比、存储、存储百分比、存储限制,以及 XTP 存储百分比。 |
若要为弹性池和共用数据库配置诊断遥测数据的流式传输,需要分别配置每一项:
- 为弹性池启用诊断遥测数据的流式传输
- 为弹性池中的每个数据库启用诊断遥测数据的流式传输
弹性池容器具有其自己的遥测数据,与每个单独的共用数据库的遥测数据分开。
若要为弹性池资源启用诊断遥测流,请执行以下步骤:
在 Azure 门户中转到弹性池资源。
选择“诊断设置”。
选择“启用诊断”(如果不存在以前的设置),或选择“编辑设置”来编辑以前的设置
输入设置名称供自己参考。
选择诊断数据要流式传输到的目标资源:“存档到存储帐户”、“流式传输到事件中心”或“发送到 Log Analytics”。
对于 Log Analytics,请选择“配置”,并通过选择“+创建新工作区”来创建新工作区;或者选择现有的工作区。
选中弹性池诊断遥测对应的复选框:基本指标。
选择“保存” 。
另外,请为弹性池中需要监视的每个数据库配置诊断遥测数据的流式传输,只需按下一部分所述的步骤操作即可。
重要
除了为弹性池配置诊断遥测数据,还需为弹性池中的每个数据库配置诊断遥测数据。
Azure SQL 数据库中的数据库
可将数据库资源设置为收集以下诊断遥测数据:
资源 | 监视遥测数据 |
---|---|
单一数据库或共用数据库 | 基本指标包含 DTU 百分比、已用 DTU、DTU 限制、CPU 百分比、物理数据读取百分比、日志写入百分比、成功/失败/防火墙阻止的连接数、会话百分比、辅助角色百分比、存储、存储百分比、XTP 存储百分比和死锁。 |
若要为单一数据库或共用数据库启用诊断遥测数据的流式传输,请执行以下步骤:
转到 Azure SQL 数据库资源。
选择“诊断设置”。
选择“启用诊断”(如果不存在以前的设置),或选择“编辑设置”来编辑以前的设置 最多可以创建三个并行连接用于流式传输诊断遥测数据。
选择“添加诊断设置”,以便配置将诊断数据并行流式传输到多个资源。
输入设置名称供自己参考。
选择诊断数据要流式传输到的目标资源:“存档到存储帐户”、“流式传输到事件中心”或“发送到 Log Analytics”。
对于标准的基于事件的监视体验,请选中数据库诊断日志遥测对应的以下复选框:“SQLInsights”、“AutomaticTuning”、“QueryStoreRuntimeStatistics”、“QueryStoreWaitStatistics”、“Errors”、“DatabaseWaitStatistics”、“Timeouts”、“Blocks”和“Deadlocks”。
对于高级的一分钟间隔监视体验,请选中“基本”指标对应的复选框。
选择“保存” 。
针对要监视的每个数据库重复上述步骤。
提示
针对要监视的每个单一数据库和共用数据库重复上述步骤。
Azure SQL 托管实例中的实例
可将托管实例资源设置为收集以下诊断遥测数据:
资源 | 监视遥测数据 |
---|---|
托管实例 | ResourceUsageStats 包含 vCore 计数、平均 CPU 百分比、IO 请求数、读取/写入的字节数、保留的存储空间和已使用的存储空间。 |
若要为托管实例和实例数据库配置诊断遥测数据的流式传输,需要分别配置每一项:
- 为托管实例启用诊断遥测数据的流式传输
- 为每个实例数据库启用诊断遥测流
托管实例容器具有其自己的遥测数据,与每个实例数据库的遥测数据分开。
若要为托管实例资源启用诊断遥测数据的流式传输,请执行以下步骤:
在 Azure 门户中转到托管实例资源。
选择“诊断设置”。
选择“启用诊断”(如果不存在以前的设置),或选择“编辑设置”来编辑以前的设置
输入设置名称供自己参考。
选择诊断数据要流式传输到的目标资源:“存档到存储帐户”、“流式传输到事件中心”或“发送到 Log Analytics”。
对于 Log Analytics,请选择“配置”,并通过选择“+创建新工作区”来创建新工作区;或者使用现有的工作区。
选中实例诊断遥测对应的复选框:ResourceUsageStats。
选择“保存” 。
另外,请为托管实例中需要监视的每个实例数据库配置诊断遥测流,只需按下一部分所述的步骤操作即可。
重要
除了为托管实例配置诊断遥测数据,还需为每个实例数据库配置诊断遥测数据。
Azure SQL 托管实例中的数据库
可将实例数据库资源设置为收集以下诊断遥测数据:
资源 | 监视遥测数据 |
---|---|
实例数据库 | 查询存储运行时统计信息和查询存储等待统计信息包含数据库的查询存储数据。 SQLInsights 包含数据库的智能见解数据。 错误包含此数据库的错误数据。 |
若要为实例数据库启用诊断遥测数据的流式传输,请执行以下步骤:
转到托管实例中的实例数据库资源。
选择“诊断设置”。
选择“启用诊断”(如果不存在以前的设置),或选择“编辑设置”来编辑以前的设置
- 最多可以创建三 (3) 个并行连接用于流式传输诊断遥测数据。
- 选择“+添加诊断设置”,配置为将诊断数据并行流式传输到多个资源。
输入设置名称供自己参考。
选择诊断数据要流式传输到的目标资源:“存档到存储帐户”、“流式传输到事件中心”或“发送到 Log Analytics”。
选中数据库诊断遥测对应的复选框:“SQLInsights”、“QueryStoreRuntimeStatistics”、“QueryStoreWaitStatistics”和“Errors”。
选择“保存” 。
针对要监视的每个实例数据库重复上述步骤。
提示
针对要监视的每个实例数据库重复上述步骤。
流式传输到 SQL Analytics
Azure SQL 数据库和 Azure SQL 托管实例指标以及流式传输到 Log Analytics 工作区中的资源日志可由 Azure SQL Analytics 使用。 Azure SQL Analytics 是一种云解决方案,可跨多个订阅大规模监视单一数据库、弹性池和共用数据库以及托管实例和实例数据库的性能。 该解决方案可帮助收集和可视化性能指标,并提供内置的性能故障排除智能。
安装概述
可以通过执行以下步骤,使用 Azure SQL Analytics 监视数据库集合:
- 从 Azure 市场创建 Azure SQL Analytics 解决方案。
- 在解决方案中创建 Log Analytics 工作区。
- 配置数据库以将诊断遥测流式传输到工作区。
可以使用 Azure 门户的“诊断设置”选项卡中的内置“发送到 Log Analytics”选项来配置此诊断遥测的流式导出。 还可以通过 PowerShell cmdlet、Azure CLI、Azure Monitor REST API 或资源管理器模板,使用诊断设置来实现流式传输到 Log Analytics 工作区。
创建 Azure SQL Analytics 资源
在 Azure 市场中搜索 Azure SQL Analytics 并选择它。
在解决方案的概述屏幕上选择“创建”。
在“Azure SQL Analytics”窗体中填写所需的附加信息:工作区名称、订阅、资源组、位置和定价层。
选择“确定”以确认,然后选择“创建”。
配置资源以记录指标和资源日志
需要为单一数据库、共用数据库、弹性池、托管实例和实例数据库分别配置诊断遥测流。 配置资源的指标记录位置的最简单方式是使用 Azure 门户。 有关详细步骤,请参阅配置诊断遥测的流式导出。
使用 Azure SQL Analytics 进行监视和警报
可以使用 SQL Analytics 作为分层仪表板来查看数据库资源。
- 若要了解如何使用 Azure SQL Analytics,请参阅使用 SQL Analytics 进行监视。
- 若要了解如何在 SQL Analytics 中设置警报,请参阅为数据库、弹性池和托管实例创建警报。
流式传输到事件中心
在 Azure 门户中使用内置的“流式传输到事件中心”选项可将 Azure SQL 数据库和 Azure SQL 托管实例指标和资源日志流式传输到事件中心。 此外,还可以通过 PowerShell cmdlet、Azure CLI 或 Azure Monitor REST API 使用诊断设置来启用服务总线规则 ID。 请确保事件中心与数据库和服务器位于同一区域。
如何处理事件中心内的指标和资源日志
将选定的数据流式传输到事件中心后,就离启动高级监视方案更进一步了。 事件中心充当事件管道的前门。 将数据收集到事件中心后,可以使用实时分析提供程序或存储适配器转换和存储这些数据。 事件中心将事件流的生成从这些事件的使用中分离出来。 通过这种方式,事件使用者可以访问自己的计划中的事件。 有关事件中心的详细信息,请参阅:
使用在事件中心流式传输的指标可以:
通过将热路径数据流式传输到 Power BI 来查看服务运行状况
使用事件中心、流分析和 PowerBI,可以在 Azure 服务中轻松地将指标和诊断数据转换成几近实时的分析结果。 有关如何设置事件中心、如何使用流分析处理数据,以及如何使用 PowerBI 作为输出的概述,请参阅流分析和 Power BI。
将日志流式传输到第三方日志记录和遥测流
使用事件中心流式传输,可将指标和资源日志引入到不同的第三方监视和日志分析解决方案。
生成自定义遥测和日志记录平台
是否已有一个自定义生成的遥测平台,或者正在考虑生成一个? 可以利用事件中心高度可缩放的发布-订阅功能灵活引入指标和资源日志。 有关详细信息,请参阅 Azure 事件中心。
流式传输到 Azure 存储中
使用 Azure 门户中内置的“存档到存储帐户”选项,可以在 Azure 存储中存储指标和资源日志。 此外,还可以通过 PowerShell cmdlet、Azure CLI 或 Azure Monitor REST API 使用诊断设置来启用存储。
存储帐户中指标和资源日志的架构
设置指标和资源日志收集后,当第一行数据可用时,将在所选的存储帐户中创建一个存储容器。 这些 Blob 的结构为:
insights-{metrics|logs}-{category name}/resourceId=/SUBSCRIPTIONS/{subscription ID}/ RESOURCEGROUPS/{resource group name}/PROVIDERS/Microsoft.SQL/servers/{resource_server}/ databases/{database_name}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json
或者使用更简单的形式:
insights-{metrics|logs}-{category name}/resourceId=/{resource Id}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json
例如,基本指标的 blob 名称可能是:
insights-metrics-minute/resourceId=/SUBSCRIPTIONS/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/RESOURCEGROUPS/TESTRESOURCEGROUP/PROVIDERS/MICROSOFT.SQL/ servers/Server1/databases/database1/y=2016/m=08/d=22/h=18/m=00/PT1H.json
如果存储弹性池中的数据,Blob 名称类似于:
insights-{metrics|logs}-{category name}/resourceId=/SUBSCRIPTIONS/{subscription ID}/ RESOURCEGROUPS/{resource group name}/PROVIDERS/Microsoft.SQL/servers/{resource_server}/ elasticPools/{elastic_pool_name}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json
数据保留策略和定价
如果选择事件中心或存储帐户,可以指定保留策略。 此策略删除早于选定时间段的数据。 如果指定 Log analytics,保留策略将取决于所选的定价层。 在这种情况下,提供的免费数据引入单位每月可免费监视多个数据库。 消耗的诊断遥测量超过免费单位可能会产生费用。
重要
与空闲数据相比,工作负荷较重的活动数据库越多,引入的数据就越多。 有关详细信息,请参阅 Log Analytics 定价。
如果使用 Azure SQL Analytics,则可以选择 Azure SQL Analytics 导航菜单上的“OMS 工作区”,然后选择“使用情况”和“预估成本”,来监视数据引入消耗量 。
可用的指标和日志
本文的这一部分介绍了如何监视适用于单一数据库、共用数据库、弹性池、托管实例和实例数据库的遥测数据。 可以使用 Azure Monitor 日志查询语言将在 SQL Analytics 内收集的监视遥测数据用于你自己的自定义分析和应用程序开发。
基本指标
请参阅下表来详细了解按资源列出的基本指标。
注意
基本指标选项以前称为“所有指标”。 所做的更改仅限于命名,并未更改所监视的指标。 启动此更改是为了允许将来引入更多的指标类别。
弹性池的基本指标
资源 | 度量值 |
---|---|
弹性池 | eDTU 百分比、已用 eDTU、eDTU 限制、CPU 百分比、物理数据读取百分比、日志写入百分比、会话百分比、辅助角色百分比、存储、存储百分比、存储限制、XTP存储百分比 |
单一数据库和共用数据库的基本指标
资源 | 度量值 |
---|---|
单一数据库和共用数据库 | DTU 百分比、已用 DTU、DTU 限制、CPU 百分比、物理数据读取百分比、日志写入百分比、成功/失败/防火墙阻止的连接数、会话百分比、辅助角色百分比、存储、存储百分比、XTP 存储百分比和死锁 |
高级指标
请参阅下表,详细了解高级指标。
指标 | 指标显示名称 | 说明 |
---|---|---|
sql_instance_cpu_percent 1 | SQL 实例 CPU 百分比 | 所有用户和系统工作负载的 CPU 使用率(按操作系统度量) |
sql_instance_memory_percent 1 | SQL 实例内存百分比 | 数据库引擎实例的内存使用情况(按操作系统测量) |
tempdb_data_size 2 | tempdb 数据文件大小 (KB) |
tempdb 数据文件大小 (KB)。 |
tempdb_log_size 2 | tempdb 日志文件大小 (KB) |
tempdb 日志文件大小 (KB)。 |
tempdb_log_used_percent 2 | tempdb 已用日志百分比 |
tempdb 已用日志百分比。 |
1 此指标可用于这样的数据库:使用具有 2 vCore 或更多 vCore 的 vCore 购买模型,或使用具有 200 DTU 或更多 DTU 的基于 DTU 的购买模型。
2 此指标可用于这样的数据库:使用具有 2 vCore 或更多 vCore 的 vCore 购买模型,或使用具有 200 DTU 或更多 DTU 的基于 DTU 的购买模型。 此指标当前不适用于 Synapse Analytics SQL 池。
注意
对于处于非活动状态 7 天或更长时间的数据库,基本指标和高级指标可能均不可用。
基本日志
下面的表中记录了适用于所有日志的遥测数据的详细信息。 有关详细信息,请参阅支持的诊断遥测。
托管实例的资源使用情况统计信息
属性 | 说明 |
---|---|
TenantId | 租户 ID |
SourceSystem | 始终:Azure |
TimeGenerated [UTC] | 记录日志时的时间戳 |
类型 | 始终:AzureDiagnostics |
ResourceProvider | 资源提供程序的名称。 始终:MICROSOFT.SQL |
Category | 类别的名称。 始终:ResourceUsageStats |
资源 | 资源名称 |
ResourceType | 资源类型的名称。 始终:MANAGEDINSTANCES |
SubscriptionId | 数据库的订阅 GUID |
resourceGroup | 数据库的资源组名称 |
LogicalServerName_s | 托管实例的名称 |
ResourceId | 资源 URI |
SKU_s | SQL 托管实例产品 SKU |
virtual_core_count_s | 可用 vCore 的数目 |
avg_cpu_percent_s | CPU 平均百分比 |
reserved_storage_mb_s | 托管实例上的保留存储容量 |
storage_space_used_mb_s | 托管实例上的已用存储 |
io_requests_s | IOPS 计数 |
io_bytes_read_s | 已读取的 IOPS 字节数 |
io_bytes_written_s | 已写入的 IOPS 字节数 |
查询数据存储运行时统计信息
属性 | 说明 |
---|---|
TenantId | 租户 ID |
SourceSystem | 始终:Azure |
TimeGenerated [UTC] | 记录日志时的时间戳 |
类型 | 始终:AzureDiagnostics |
ResourceProvider | 资源提供程序的名称。 始终:MICROSOFT.SQL |
Category | 类别的名称。 始终:QueryStoreRuntimeStatistics |
OperationName | 操作的名称。 始终:QueryStoreRuntimeStatisticsEvent |
资源 | 资源名称 |
ResourceType | 资源类型的名称。 始终:SERVERS/DATABASES |
SubscriptionId | 数据库的订阅 GUID |
resourceGroup | 数据库的资源组名称 |
LogicalServerName_s | 数据库的服务器名称 |
ElasticPoolName_s | 数据库的弹性池(如果有)名称 |
DatabaseName_s | 数据库的名称 |
ResourceId | 资源 URI |
query_hash_s | 查询哈希 |
query_plan_hash_s | 查询计划哈希 |
statement_sql_handle_s | 语句 SQL 句柄 |
interval_start_time_d | 间隔的开始 datetimeoffset,以从 1900-1-1 开始的时钟周期数计 |
interval_end_time_d | 间隔的结束 datetimeoffset,以从 1900-1-1 开始的时钟周期数计 |
logical_io_writes_d | 逻辑 IO 写入总次数 |
max_logical_io_writes_d | 每次执行逻辑 IO 写入的最大次数 |
physical_io_reads_d | 物理 IO 读取总次数 |
max_physical_io_reads_d | 每次执行逻辑 IO 读取的最大次数 |
logical_io_reads_d | 逻辑 IO 读取总次数 |
max_logical_io_reads_d | 每次执行逻辑 IO 读取的最大次数 |
execution_type_d | 执行类型 |
count_executions_d | 执行查询的次数 |
cpu_time_d | 查询使用的总 CPU 时间(以微秒为单位) |
max_cpu_time_d | 单个执行消耗的最大 CPU 时间(以微秒为单位) |
dop_d | 并行度总和 |
max_dop_d | 用于单个执行的最大并行度 |
rowcount_d | 返回的总行数 |
max_rowcount_d | 单个执行中返回的最大行数 |
query_max_used_memory_d | 已使用的内存总量(以 KB 为单位) |
max_query_max_used_memory_d | 单个执行使用的最大内存量(以 KB 为单位) |
duration_d | 总执行时间(以微秒为单位) |
max_duration_d | 单个执行的最大执行时间 |
num_physical_io_reads_d | 总物理读取次数 |
max_num_physical_io_reads_d | 每次执行最大物理读取次数 |
log_bytes_used_d | 使用的日志字节总量 |
max_log_bytes_used_d | 每次执行使用的日志字节最大数量 |
query_id_d | 查询存储中查询的 ID |
plan_id_d | 查询存储中计划的 ID |
详细了解查询存储运行时统计信息数据。
查询存储等待统计信息
属性 | 说明 |
---|---|
TenantId | 租户 ID |
SourceSystem | 始终:Azure |
TimeGenerated [UTC] | 记录日志时的时间戳 |
类型 | 始终:AzureDiagnostics |
ResourceProvider | 资源提供程序的名称。 始终:MICROSOFT.SQL |
Category | 类别的名称。 始终:QueryStoreWaitStatistics |
OperationName | 操作的名称。 始终:QueryStoreWaitStatisticsEvent |
资源 | 资源名称 |
ResourceType | 资源类型的名称。 始终:SERVERS/DATABASES |
SubscriptionId | 数据库的订阅 GUID |
resourceGroup | 数据库的资源组名称 |
LogicalServerName_s | 数据库的服务器名称 |
ElasticPoolName_s | 数据库的弹性池(如果有)名称 |
DatabaseName_s | 数据库的名称 |
ResourceId | 资源 URI |
wait_category_s | 等待的类别 |
is_parameterizable_s | 查询是否可以参数化 |
statement_type_s | 语句的类型 |
statement_key_hash_s | 语句密钥哈希 |
exec_type_d | 执行类型 |
total_query_wait_time_ms_d | 查询特定等待类别的总等待时间 |
max_query_wait_time_ms_d | 单个执行中针对具体等待类别的查询的最大等待时间 |
query_param_type_d | 0 |
query_hash_s | 查询存储中的查询哈希 |
query_plan_hash_s | 查询存储中的查询计划哈希。 |
statement_sql_handle_s | 查询存储中的语句句柄 |
interval_start_time_d | 间隔的开始 datetimeoffset,以从 1900-1-1 开始的时钟周期数计 |
interval_end_time_d | 间隔的结束 datetimeoffset,以从 1900-1-1 开始的时钟周期数计 |
count_executions_d | 执行查询的次数 |
query_id_d | 查询存储中查询的 ID |
plan_id_d | 查询存储中计划的 ID |
详细了解查询存储等待统计数据。
错误数据集
属性 | 说明 |
---|---|
TenantId | 租户 ID |
SourceSystem | 始终:Azure |
TimeGenerated [UTC] | 记录日志时的时间戳 |
类型 | 始终:AzureDiagnostics |
ResourceProvider | 资源提供程序的名称。 始终:MICROSOFT.SQL |
Category | 类别的名称。 始终:错误 |
OperationName | 操作的名称。 始终:ErrorEvent |
资源 | 资源名称 |
ResourceType | 资源类型的名称。 始终:SERVERS/DATABASES |
SubscriptionId | 数据库的订阅 GUID |
resourceGroup | 数据库的资源组名称 |
LogicalServerName_s | 数据库的服务器名称 |
ElasticPoolName_s | 数据库的弹性池(如果有)名称 |
DatabaseName_s | 数据库的名称 |
ResourceId | 资源 URI |
Message | 纯文本格式的错误消息 |
user_defined_b | 是否是用户定义位错误 |
error_number_d | 错误代码 |
severity | 错误的严重性 |
state_d | 错误的状态 |
query_hash_s | 失败查询的查询哈希(如果有) |
query_plan_hash_s | 失败查询的查询计划哈希(如果有) |
详细了解 SQL 错误消息。
数据库等待统计数据集
属性 | 说明 |
---|---|
TenantId | 租户 ID |
SourceSystem | 始终:Azure |
TimeGenerated [UTC] | 记录日志时的时间戳 |
类型 | 始终:AzureDiagnostics |
ResourceProvider | 资源提供程序的名称。 始终:MICROSOFT.SQL |
Category | 类别的名称。 始终:DatabaseWaitStatistics |
OperationName | 操作的名称。 始终:DatabaseWaitStatisticsEvent |
资源 | 资源名称 |
ResourceType | 资源类型的名称。 始终:SERVERS/DATABASES |
SubscriptionId | 数据库的订阅 GUID |
resourceGroup | 数据库的资源组名称 |
LogicalServerName_s | 数据库的服务器名称 |
ElasticPoolName_s | 数据库的弹性池(如果有)名称 |
DatabaseName_s | 数据库的名称 |
ResourceId | 资源 URI |
wait_type_s | 等待类型的名称 |
start_utc_date_t [UTC] | 测量周期开始时间 |
end_utc_date_t [UTC] | 测量周期结束时间 |
delta_max_wait_time_ms_d | 每次执行最大等待时间 |
delta_signal_wait_time_ms_d | 总信号等待时间 |
delta_wait_time_ms_d | 期间内的总等待时间 |
delta_waiting_tasks_count_d | 等待任务数 |
详细了解数据库等待统计信息。
超时数据集
属性 | 说明 |
---|---|
TenantId | 租户 ID |
SourceSystem | 始终:Azure |
TimeGenerated [UTC] | 记录日志时的时间戳 |
类型 | 始终:AzureDiagnostics |
ResourceProvider | 资源提供程序的名称。 始终:MICROSOFT.SQL |
Category | 类别的名称。 始终:超时 |
OperationName | 操作的名称。 始终:TimeoutEvent |
资源 | 资源名称 |
ResourceType | 资源类型的名称。 始终:SERVERS/DATABASES |
SubscriptionId | 数据库的订阅 GUID |
resourceGroup | 数据库的资源组名称 |
LogicalServerName_s | 数据库的服务器名称 |
ElasticPoolName_s | 数据库的弹性池(如果有)名称 |
DatabaseName_s | 数据库的名称 |
ResourceId | 资源 URI |
error_state_d | 与查询超时值关联的数值状态值(attention 事件) |
query_hash_s | 查询哈希(如果有) |
query_plan_hash_s | 查询计划哈希(如果有) |
阻塞数据集
属性 | 说明 |
---|---|
TenantId | 租户 ID |
SourceSystem | 始终:Azure |
TimeGenerated [UTC] | 记录日志时的时间戳 |
类型 | 始终:AzureDiagnostics |
ResourceProvider | 资源提供程序的名称。 始终:MICROSOFT.SQL |
Category | 类别的名称。 始终:块 |
OperationName | 操作的名称。 始终:BlockEvent |
资源 | 资源名称 |
ResourceType | 资源类型的名称。 始终:SERVERS/DATABASES |
SubscriptionId | 数据库的订阅 GUID |
resourceGroup | 数据库的资源组名称 |
LogicalServerName_s | 数据库的服务器名称 |
ElasticPoolName_s | 数据库的弹性池(如果有)名称 |
DatabaseName_s | 数据库的名称 |
ResourceId | 资源 URI |
lock_mode_s | 查询所使用的锁模式 |
resource_owner_type_s | 锁的所有者 |
blocked_process_filtered_s | 阻塞进程报告 XML |
duration_d | 锁定持续时间(以毫秒为单位) |
死锁数据集
属性 | 说明 |
---|---|
TenantId | 租户 ID |
SourceSystem | 始终:Azure |
TimeGenerated [UTC] | 记录日志时的时间戳 |
类型 | 始终:AzureDiagnostics |
ResourceProvider | 资源提供程序的名称。 始终:MICROSOFT.SQL |
Category | 类别的名称。 始终:死锁数 |
OperationName | 操作的名称。 始终:DeadlockEvent |
资源 | 资源名称 |
ResourceType | 资源类型的名称。 始终:SERVERS/DATABASES |
SubscriptionId | 数据库的订阅 GUID |
resourceGroup | 数据库的资源组名称 |
LogicalServerName_s | 数据库的服务器名称 |
ElasticPoolName_s | 数据库的弹性池(如果有)名称 |
DatabaseName_s | 数据库的名称 |
ResourceId | 资源 URI |
deadlock_xml_s | 死锁报告 XML |
自动优化数据集
属性 | 说明 |
---|---|
TenantId | 租户 ID |
SourceSystem | 始终:Azure |
TimeGenerated [UTC] | 记录日志时的时间戳 |
类型 | 始终:AzureDiagnostics |
ResourceProvider | 资源提供程序的名称。 始终:MICROSOFT.SQL |
Category | 类别的名称。 始终:AutomaticTuning |
资源 | 资源名称 |
ResourceType | 资源类型的名称。 始终:SERVERS/DATABASES |
SubscriptionId | 数据库的订阅 GUID |
resourceGroup | 数据库的资源组名称 |
LogicalServerName_s | 数据库的服务器名称 |
LogicalDatabaseName_s | 数据库的名称 |
ElasticPoolName_s | 数据库的弹性池(如果有)名称 |
DatabaseName_s | 数据库的名称 |
ResourceId | 资源 URI |
RecommendationHash_s | 自动优化建议的唯一哈希值 |
OptionName_s | 自动优化操作 |
Schema_s | 数据库架构 |
Table_s | 受影响的表 |
IndexName_s | 索引名称 |
IndexColumns_s | 列名称 |
IncludedColumns_s | 包括的列 |
EstimatedImpact_s | 自动优化建议 JSON 的估计影响 |
Event_s | 自动优化事件的类型 |
Timestamp_t | 上次更新时间戳 |
提示
query_hash_s
和 query_plan_hash_s
作为数值提供。 如果要在查询存储中找到匹配的查询和查询计划,请使用以下 T-SQL 表达式将数值哈希值转换为 sys.query_store_query 和 sys.query_store_plan 中使用的二进制哈希值:
SELECT CAST(CAST(hash_value as bigint) AS binary(8))
。
将 hash_value
占位符替换为实际 query_hash_s
或 query_plan_hash_s
数值。
智能见解数据集
详细了解 Intelligent Insights 日志格式。
后续步骤
若要了解如何启用日志记录并了解各种 Azure 服务支持的指标和日志类别,请参阅:
若要了解事件中心,请阅读以下主题:
若要了解如何基于日志分析中的遥测来设置警报,请参阅: