了解 Query Performance Insight

已完成

确定占用最多资源的查询是所有数据库性能优化工作的第一步。 在旧版 SQL Server 中,这需要大量的跟踪和一系列复杂的 SQL 脚本,这可能会导致数据收集过程变得繁琐。

识别有问题的查询

Query Performance Insight 允许管理员快速标识昂贵的查询。 可以在 Azure SQL 数据库主边栏选项卡中的“智能性能”部分导航到“查询性能见解”。

启动 Query Performance Insight 时,会发现三个按钮,用于筛选长时间运行的查询、资源消耗量最高的查询或自定义筛选器。 默认值为“占用资源最多的查询”。 此选项卡显示按所选特定资源排序的前五个查询。 在这种情况下,它是按 CPU 排序的。 你还可以选择根据数据 IO 和日志 IO 指标进行排序。

可以通过选择下网格中的行来钻取各个查询。 每一行都用与该行上方的条形图中的颜色相关联的唯一颜色进行标识。

查询性能见解的屏幕截图。

切换为“长期运行的查询”,你会看到与先前类似的布局。 在这种情况下,指标限制为按最近 24 小时内的总和持续时间排序的前五个查询。 在图形下方的网格中,可以通过选择行来检查特定查询。

查询性能见解中查询在多次执行时的屏幕截图。

与其他两个选项相比,切换到自定义选项卡可提供更大的灵活性。

在此选项卡中,可以进一步定义要如何检查性能数据。 它提供了几个下拉菜单,用于控制数据的可视化表示。 关键指标是 CPU、Log IO、Data IO 和内存。 这些指标是数据库性能的各个方面,其上限由 Azure SQL 数据库的服务层级和计算资源确定。

查询性能见解中自定义仪表板的屏幕截图。

如果我们钻取到单个查询,则可以查看查询 ID 和查询本身,以及查询聚合类型和关联的时间段。 此外,查询 ID 还与查询存储中的查询 ID 相关。 然后,可以在查询存储中轻松找到由查询性能见解收集到的指标,以便根据需要进行更深入的分析或者解决问题。

查询性能见解中查询 ID 3204 详细信息的屏幕截图。

尽管 Query Performance Insight 不显示查询的执行计划,但可以快速识别该查询,并使用该信息从数据库的查询存储中提取计划。