想要找出查询执行缓慢的根本原因需要考虑许多因素,并要采取一种有组织的方法。幸运的是,只需花一点工夫,检查几项事情就能将问题确定为更常见的元凶之一。在今天的文章中,我们将学习 Navicat Monitor 2 如何帮助你深入了解缓慢的查询执行的原因!
网络问题
数据库服务器被设计为可以通过网络(例如内部或外部)访问,例如万维网(World-wide Web)。因此,有时会偶尔断开连接,甚至持续数小时或数天的中断。在本地环境中良好的性能是一个令人鼓舞的迹象,但不一定足以完全排除网络问题,因为服务器本身可能会过载。你可以使用能跟踪服务器操作系统指标(例如 CPU 进程和内存)的监控工具进行测试。Navicat Monitor可以通过跟踪 O/S指标来提供帮助。
在 Windows 类型服务器上,你可以配置“CPU 和内存”部分,通过简单网络管理协议(SNMP,Simple Network Management Protocol)监控 O/S 指标:
这样做在仪表板中的实例卡片会出现服务器指标(例如 CPU、内存和磁盘使用率):
你也可以点击系统指标以查看更多详细信息,包括交换使用率、连接和网络吞吐量。每个指标都包含一个交互式图表:
查询监控
排除了网络问题后,就该仔细检查查询了。查询获取正确的数据在功能上可以是正确的,但是以有效的方式进行仍然是不足的。设计查询以使效率最大化的方法至关重要,因为根据数据库引擎的不同,所有查询都可能作为队列顺序运行。举个例子,MySQL 的 MyISAM 引擎在执行查询时获取表级锁,以保护事务期间的数据完整性。在此期间,第一个查询完成前,其他进程或查询必须等待。如果第一个查询需要长时间执行,那等待可能会很漫长!
Navicat Monitor 的“查询分析器”在这方面非常有用。它显示所有正在运行的查询的摘要信息,并让你找到有问题的查询,包括:
- 运行时间累计最長的询
- 响应时间不可接受的慢速查询
- 死锁(当两个或多个查询永久相互阻塞时)
总结
在今天的文章中,我们了解了 Navicat Monitor 2 如何帮助你深入了解缓慢的查询执行的原因!
Navicat Monitor 是一套安全,简单且无代理的远程 MySQL、MariaDB 和 SQL Server 服务器监视工具。它包含一组丰富的实时和历史图表,可让你深入了解服务器统计信息。最新版本的 Navicat Monitor(版本 2.0)现在也支持 SQL Server!
Navicat Monitor 2.0 版现已在 Navicat 在线商店出售,价格为 CNY 4,239/令牌(商业)和 CNY 2,219/令牌(非商业)。若要解锁 1 个 MySQL服务器、1 个 MariaDB 服务器或 1 个 SQL Server,需要 1 个令牌。