你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure SQL 数据库与 Azure SQL 托管实例中的监视和性能优化
适用于: Azure SQL 数据库 Azure SQL 托管实例
若要监视 Azure SQL 数据库和 Azure SQL 托管实例中某个数据库的性能,首先需要监视工作负荷使用的、相对于在选择特定服务层和性能级别所选的数据库性能级别的 CPU 和 IO 资源。 为了帮助实现此目的,Azure SQL 数据库和 Azure SQL 托管实例会发出资源指标,你可以在 Azure 门户中或使用以下 SQL Server 管理工具之一查看这些指标:
- Azure Data Studio,基于 Visual Studio Code。
- SQL Server Management Studio (SSMS),基于 Microsoft Visual Studio。
下表汇总了 Azure SQL 数据库 和 Azure SQL Managed Studio 中的监视功能。
监视解决方案 | SQL 数据库 | SQL 托管实例 | 资产监视 | 低延迟 | 综合数据 |
---|---|---|---|---|---|
指标和警报 | 是 | 是 | 是 | 是 | 否 |
Query Performance Insight | 是 | No | 是 | 否 | 否 |
使用 DMV 进行监视 | 是 | 是 | No | 是 | 是 |
使用查询存储进行监视 | 是 | 是 | No | 是 | 否 |
数据库观察程序(预览版) | 是 | 是 | 是 | 是 | 是 |
数据库观察程序(预览版)
数据库观察程序收集深入的工作负荷监视数据,以便详细查看数据库性能、配置和健康状况。 Azure 门户中的仪表板提供 Azure SQL 资产的单一视图,以及每个监视资源的详细视图。 数据将收集到 Azure 订阅中的中央数据存储中。 你可以查询、分析、导出、可视化收集的数据并将其与下游系统集成。
有关数据库观察程序的详细信息,请参阅以下文章:
- 使用数据库观察程序监视 Azure SQL 工作负荷(预览版)
- 快速入门:创建用于监视 Azure SQL 的数据库观察程序(预览版)
- 创建和配置数据库观察程序(预览版)
- 数据库观察程序数据收集和数据集(预览版)
- 分析数据库观察程序监视数据(预览版)
- 数据库观察程序常见问题解答
Azure 门户中的数据库顾问
Azure SQL 数据库提供多个数据库顾问来提供智能性能优化建议以及用于提高性能的自动优化选项。
此外,Query Performance Insight 页面会显示有关针对单一数据库和共用数据库运行的、CPU 和 IO 占用量最高的查询的详细信息。
- 在 Azure 门户中,Azure SQL 数据库“概览”窗格中的“智能性能”下提供 Query Performance Insight。 使用自动收集的信息标识查询,然后开始优化工作负载性能。
- 还可以配置自动优化以自动实现这些建议,例如强制实施查询执行计划以防止回归,或基于工作负载模式创建和删除非聚集索引。 在 Azure 门户中,Azure SQL 数据库“概览”窗格中的“智能性能”下还提供“自动优化”。
Azure SQL 数据库和 Azure SQL 托管实例提供高级监视和优化功能,以帮助排查数据库和解决方案的性能问题并实现其最高性能。 可以选择将数据库资源日志与指标的流式导出配置到多个目标之一,使其可供使用和分析。
除了 Azure 门户之外,数据库引擎具有自己的监视和诊断功能,Azure SQL 数据库和 SQL 托管实例可以使用这些功能,例如查询存储和动态管理视图 (DMV)。 有关用于监视 Azure SQL 数据库和 Azure SQL 托管实例中的各种性能问题的脚本,请参阅使用 DMV 进行监视。
监视和诊断遥测
下图详细介绍了 Azure SQL 产品生成的所有数据库引擎、平台指标、资源日志和 Azure 活动日志、以及产品的处理方式和如何将其显示以供分析。
在 Azure 门户中监视和优化 Azure SQL
在 Azure 门户中,Azure SQL 数据库和 Azure SQL 托管实例提供对资源指标的监视。 Azure SQL 数据库提供数据库顾问,而 Query Performance Insight 提供查询优化建和查询性能分析。 在 Azure 门户中,可为逻辑 SQL 服务器及其单一数据库和共用数据库启用自动优化。
注意
使用率极低的数据库在门户中显示的使用情况可能低于实际使用情况。 由于在将双精度值转换为最接近的整数时发出遥测的方式,某些小于 0.5 的使用量将舍入为 0,这会导致发出的遥测的精度降低。 有关详细信息,请参阅数据库和弹性池低指标舍入为零。
Azure SQL 数据库和 Azure SQL 托管实例资源监视
可以在 Azure 门户上的“指标”视图中快速监视各种资源指标。 可通过这些指标查看数据库是否接近 CPU、内存、IO 或存储资源的限制。 高 DTU、CPU 或 IO 利用率可能表明工作负载需要更多资源。 它还可能指示查询需要优化。 若要了解 Azure SQL 数据库和 Azure SQL 托管实例中支持的指标,请参阅 Microsoft.Sql/servers/databases、Microsoft.Sql/servers/elasticPools 和 Microsoft.Sql/managedInstances。
有关 Azure SQL 数据库中的一组建议的警报规则,请参阅使用 Azure Monitor 指标和警报监视 Azure SQL 数据库。
注意
Azure 门户中的存储相关指标(例如“已使用的数据空间”)以二进制值报告,但使用的是十进制单位。 例如,1 MB 的存储空间是指 1,048,576 字节,而不是 1,000,000 字节。 对于二进制值,使用的新单位是 KiB、MiB、GiB 等。但为了与数据库引擎中以前建立的使用情况数据保持兼容性和一致性,Azure SQL 存储指标使用旧单位,例如 KB、MB、GB 等。
Azure SQL 数据库中的数据库顾问
Azure SQL 数据库包含针对单一数据库和共用数据库提供性能优化建议的数据库顾问。 这些建议会在 Azure 门户中提供,也可以使用 PowerShell 来查看。 还可以启用自动优化,使 Azure SQL 数据库能够自动实施这些优化建议。
Azure SQL 数据库中的 Query Performance Insight
Query Performance Insight 在 Azure 门户中显示针对单一数据库和共用数据库运行的、资源消耗量最高且运行时间最长的查询的性能。
数据库和弹性池低指标舍入为零
从 2020 年 9 月开始,使用率极低的数据库在门户中显示的使用情况可能低于实际使用情况。 由于在将双精度值转换为最接近的整数时发出遥测的方式,某些小于 0.5 的使用量将舍入为 0,这会导致发出的遥测的精度降低。
例如:假设一个 1 分钟时段,其中包含以下 4 个数据点:0.1、0.1、0.1、0.1,这些低值向下舍入为 0、0、0、0,并显示平均值为 0。 如果其中有数据点大于 0.5,例如:0.1、0.1、0.9、0.1,它们舍入为 0、0、1、0,并显示平均值为 0.25。
启用指标和资源日志的流式导出
诊断设置是是一项功能,其包含资源日志类别(以前称为诊断日志)。 可以启用和配置目标为多个目标之一的诊断遥测的流式导出,包括 Log Analytics、事件中心和 Azure 存储。
注意
智能见解的资源日志类别称为 SQLInsights
。 这与 SQL Insights(预览版)监视解决方案无关。
可以配置诊断设置,以将单一数据库、共用数据库、弹性池、SQL 托管实例和实例数据库的指标和资源日志类别流式传输到以下 Azure 服务之一。
Azure Monitor 中的 Log Analytics 工作区
可将指标和资源日志流式传输到 Azure Monitor 中的 Log Analytics 工作区。 流式传输到这里的数据可供 SQL Analytics(预览版)使用,这是一种仅限云的监视解决方案,提供对数据库的智能监视,其中包括性能报表、警报和风险缓解建议。 流式传输到 Log Analytics 工作区的数据可以使用其他收集到的监视数据进行分析,通过这些数据还可以使用其他 Azure Monitor 功能,例如警报和可视化效果。
注意
Azure SQL Analytics(预览版)是与 Azure Monitor 的集成,其中许多监视解决方案不再处于活动开发状态。
Azure 事件中心
可将指标和资源日志流式传输到 Azure 事件中心。 将诊断遥测数据流式传输到事件中心以提供以下功能:
将日志流式传输到第三方日志记录和遥测系统
将所有指标和资源日志流式传输到单个事件中心,以通过管道将日志数据传送到第三方 SIEM 或日志分析工具。
生成自定义遥测和日志记录平台
可利用事件中心高度可缩放的发布-订阅功能,灵活地将指标和资源日志引入到自定义遥测平台。 有关详细信息,请参阅 Azure 事件中心。
通过将数据流式传输到 Power BI 来查看服务运行状况
使用事件中心、流分析和 PowerBI,将诊断数据转换成 Azure 服务上几近实时的认知见解。 有关此解决方案的详细信息,请参阅流分析和 Power BI:用于流式处理数据的实时分析仪表板。
Azure 存储
将指标和资源日志流式传输到 Azure 存储。 使用 Azure 存储存档大量诊断遥测数据,并且成本只是前两种流式传输选项的一小部分。
使用扩展事件
此外,还可以使用扩展事件在 SQL Server、Azure SQL 数据库和 Azure SQL 托管实例中进行高级监视和故障排除。 扩展事件是一种优于 SQL 跟踪的“跟踪”工具和事件体系结构,支持用户收集尽可能多或尽可能少的数据来排查或查明性能问题,同时缓解对正在运行的应用程序的性能所产生的影响。 扩展事件将替代弃用的 SQL 跟踪和 SQL Server Profiler 功能。 有关使用 Azure SQL 数据库中的扩展事件的信息,请参阅 Azure SQL 数据库中的扩展事件。 在 Azure SQL 数据库和 SQL 托管实例中,使用托管在 Azure Blob 存储中的事件文件目标。
相关内容
- 有关针对单一数据库和共用数据库的智能性能建议的详细信息,请参阅数据库顾问性能建议。
- 使用数据库观察程序监视 Azure SQL 工作负荷(预览版)
- 使用指标和警报监视 Azure SQL 数据库
- 监视 Azure SQL 数据库
- 使用 Azure Monitor 监视 Azure SQL 托管实例