彩票走势图

使用SQL Server监控工具SQL Monitor,监视Azure SQL数据库的性能问题(上)

翻译|使用教程|编辑:莫成敏|2019-08-22 10:58:27.500|阅读 775 次

概述:本文介绍了Azure定制的指标和警报,SQL Monitor提供这些指标和警报来诊断Azure SQL数据库的任何性能问题,并让您知道哪个资源(CPU,数据IO或日志IO)是瓶颈。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

SQL Monitor是一个SQL Server监控工具。它可以监控SQL Servers的健康状况和活动,并通过电子邮件为您发送监测结果和建议。

点击下载SQL Monitor免费版

本文介绍了Azure定制的指标和警报,SQL Monitor提供这些指标和警报来诊断Azure SQL数据库的任何性能问题,并让您知道哪个资源(CPU,数据IO或日志IO)是瓶颈。

SQL Monitor提供了一整套针对Azure SQL数据库和SQL弹性池的监视。因此,您可以使用它来监视所有数据库,无论它们是在本地物理服务器或虚拟机上,还是在Azure云中。

Azure SQL数据库只是一个SQL Server数据库,可以使用许多标准数据库监视机制和指标。因此,SQL Monitor可以为所有数据库收集这些度量标准,并以标准方式为整个SQL Server属性提供数据。不同之处在于,您现在正在监控共同租用的Azure计算机上的SQL Server数据库,您无需对其负责或访问。

但是,SQL Monitor将收集Azure定制的度量标准,这些度量标准将告诉您数据库如何消耗诸如存储空间和CPU之类的资源,并且还有一些新的度量标准要收集,而这些指标通常不需要。Azure SQL数据库将具有唯一的“计算资源”约束,以您选择的性能和存储层可用的DTU数量或vCore配额来衡量。这需要一些特殊类型的度量标准和关联的警报,以便SQL Monitor可以快速提醒您Azure SQL数据库的性能问题,并让您知道它是否是计算资源问题,以及哪个资源(数据IO或日志IO)是约束。

为什么使用监控工具?

如果仅使用Azure SQL数据库,则可以选择使用Azure门户中提供的内置监视来获取整个Azure SQL Server属性的概述,并在整个Azure的上下文中查看它资源。例如,如果您具有混合类型的Azure托管数据库(包括MySQL MongoDB或PostgreSQL),则还可以在Azure监控中包含这些数据库。

然而,这种多功能性需要付出代价。Azure系统仅自动为您收集有限数量的数据库度量标准。警报需要您完成更多工作。这需要你花费大量的时间,最宝贵的商品来完成它。这意味着使用像SQL Monitor这样的工具是有好处的,即使你确实拥有“全Azure”产品,它也会为你完成所有这些工作。

如果更常见的是,您拥有混合SQL Server产品,云中的某些服务器和服务以及一些本地服务器和服务,那么如果您使用的是Azure Poral监控,则仍需要单独监控所有非Azure数据库遗产。

相反,您需要一个集成监视内部部署和Azure服务器和数据库的监视工具,因此提供了包含一组通用指标和警报的整体环境。例如,如果Azure SQL数据库不可用,则SQL Monitor会立即让您了解它,就像对任何受监视实例一样。它还内置了您在Azure SQL数据库上监视昂贵查询,阻止,死锁等所需的所有性能指标和警报。当然,如果您需要深入研究SQL Monitor已向您发出警告的问题,您仍然可以使用Azure Monitor工具和其他工具。

监控Azure SQL数据库

在幕后,Azure SQL数据库只是一个SQL Server数据库,因此您将对监视性能、行为、错误等有同样的担忧。因此,在很大程度上,SQL Monitor在Azure SQL数据库中的外观和行为与在本地硬件或虚拟机中运行的SQL Server的外观和行为大致相同。但是,您也会看到差异,并且您还会有特殊的监控问题,具体取决于您确切地设置Azure SQL数据库的方式,您选择的采购模型和服务层等等。

本文不会尝试提供有关如何迁移到Azure SQL数据库的任何建议,也不会提供您应该选择的选项。我只是设置了四个Azure SQL数据库来反映一些可用的选项和模型:

  • Standalonedb——顾名思义,这是一个Azure SQL数据库,位于基本层中并由DTU收费。

  • RedgatePool——具有三个数据库的弹性池,这些数据库处于更高性能层并由vCore计费。

  • Firstshareddb和secondshareddb——是相同的两个单独的数据库逻辑服务器,它们位于一个更高的层次,并通过DTU重新计费。

某些资源限制将适用于您的数据库和池,基于DTU或基于vCore。如果您点击它们,您会看到严重的性能问题,甚至是连接问题。当然,SQL Monitor具有指标和警报,可以让您看到这些问题并计划如何避免这些问题。

概述

让我们从SQL Monitor 的Overviews屏幕开始,在那里您可以看到为监控设置的Azure SQL数据库和数据库池,如上所述。

60word-image-71.jpg每个磁贴右上方的云图标表示您正在监视基于云的资源,左侧的图标告诉您它是单个Azure SQL数据库还是弹性数据库池。

除此之外,在大多数方面,概述的外观和行为与任何其他SQL Server实例的概述类似。您可以判断数据库是在线还是关闭。如果已生成任何警报,您将能够看到这些警报。您还可以立即获得有关给定数据库的一般行为的反馈。例如,standalonedb数据库上有一些活动,如下所示:

61word-image-72.jpg

您还可以获得DTU或数据库事务单元的附加度量,我们将在稍后详细介绍,以及CPU、数据I / O和日志I / O的度量,它们是构成DTU的度量标准。

我们将以standalonedb示例的方式查看SQL Monitor指标和警报。我将单独介绍弹性池并指出任何差异。具有共享数据库的服务器具有一些管理更容易的区域,但基本上与独立服务器和数据库的工作方式相同,因此我不会单独介绍它。

资源指标

单击数据库将打开该数据库行为的详细视图:

62word-image-73.jpg

如您所见,SQL Monitor包含Azure SQL数据库的DTU利用率度量标准以及CPU利用率度量标准。由于Azure中的计费可以由DTU或vCore进行,因此您需要同时测量CPU和DTU。您可以立即看到当天早些时候CPU和DTU的使用与正常行为完全不同。

下面我们看到数据库的数据I / O和日志I / O利用率。所有这些都表示为此数据库的最大允许利用率的百分比。如果数据库达到其中任何资源的最大配额,您将看到严重的查询性能问题,查询将被排队。您需要仔细跟踪这些资源的使用,并且您很快就会看到SQL Monitor还提供有关这些指标的内置和可配置警报。

对于在物理机或虚拟机上运行的SQL Server实例,您通常会在此处查看磁盘I / O内存等资源指标。虽然Azure SQL数据库中的许多测量都是相同的,但很多测量是完全不同的,因为术语“数据库即服务”意味着您不会查看服务器实例,而只是拥有一个数据库和资源它目前正在使用。

当然,您仍需要测量I / O、内存使用等,因此SQL Monitor会从Azure SQL数据库特定的DMV和Azure中提供的其他指标中捕获这些数据库资源使用指标。例如,它从sys.dm_db_resource_statsDMV 捕获CPU利用率数据。

最昂贵的10个查询及其执行计划

如果资源使用率很高,尤其是在您接近资源限制时,您将需要查看系统上处于活动状态的最长运行或资源密集型查询。向下滚动到overviews页面,我们找到它们。在这个例子里,目前只有少数查询生成测试负载,但在较大的系统上,您会看到正常的前10个查询:

63word-image-74.jpg

您可以按执行次数、持续时间和所有其余内容对查询进行排序。您可以深入查询以获取执行计划、关联的T-SQL语句和查询历史记录:

64word-image-75.jpg

所有这些都是从SQL Monitor获取的任何SQL Server实例的相同信息。

等待统计

除了查询之外,您还可以查看等待统计信息:

65word-image-76.jpg同样,此处的行为与SQL Server实例中的预期完全相同。唯一的区别是这些等待来自sys.dm_db_wait_stats,而不是来自sys.dm_os_wait_stats,因为这是一个Azure SQL数据库。

SQL Server性能指标

进一步向下滚动可以获得您希望看到的大多数指标,展示数据库的一般性能:

66word-image-77.jpg

跟踪Azure中的锁定和锁存、批处理请求、SQL编译等指标同样重要,因为它在SQL Server实例中,因此所有数据都可用。

分析数据库指标值中的趋势和相关性

SQL Monitor显示我们在Analysis屏幕上收集的Azure SQL数据库指标的完整列表:

67word-image-78.jpg

这意味着,与任何SQL Server实例中的任何其他指标一样,我们可以绘制和分析Azure SQL数据库的相关指标,并创建基线,以便与类似时期的先前行为进行比较。

这是一个基线,显示1小时内与前一小时相比的CPU百分比,并将前7天的比较进行了扩展:

68word-image-79.jpg

图表上较浅的一行表示CPU长时间处于最大值,并且还有一段短暂的时间段CPU低于此图表显示的数据库正常的合理稳定状态。这提供了一些信息,这些信息可用于将当前状态与Azure SQL数据库中的先前行为进行比较,就像在常规SQL Server实例中一样。

相关内容文章:

使用SQL Server监控工具SQL Monitor,监视Azure SQL数据库的性能问题(下)


想要购买SQL Monitor正版授权,或了解更多产品信息请点击



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP