跳到主要内容

如何查看数据库正在执行的 SQL ?

在数据库使用中,我们经常需要进行性能优化、故障排查等工作,便捷的查看数据库正在执行的 SQL,则可以大大简化这些工作。在 MySQL 中,可以通过 SHOW PROCESSLISTSHOW FULL PROCESSLIST 获得当前正在连接的线程,也可以看到正在运行的 SQL。最近,NineData 发布了查看会话功能,可以帮助开发者、DBA 更加简单的执行这个操作。

使用 查看会话 功能,可以发现当前正在运行的慢 SQL,也可以看到一些"高频"运行的 SQL,以对数据库进行性能优化与故障排查。具体的,可以帮助我们解决如下问题:

  • 追踪长时间运行的 SQL:有时候某些查询可能会长时间运行,占用数据库资源,从而影响整体性能。如果没有办法检测到这些查询,就无法及时采取措施来优化它们。

  • 发现阻塞 SQL:在多用户的数据库环境中,可能会出现由于锁定或长时间运行查询等原因引起的阻塞问题。如果没有办法查看正在运行的进程,将无法准确地诊断和解决这些问题。

  • 查看当前数据库连接的用户与主机:获取当前所有活动连接的列表,包括连接的状态、运行时间等信息,有助于监控数据库活动。

  • KILL 有问题的 SQL 进程:检测到有问题的查询或进程时,可以通过结束会话按钮来终止它们,以释放资源并恢复数据库的正常运行。您可以通过多选来批量终止问题进程。

  • 诊断性能问题:如果数据库变得缓慢,可以通过查看会话功能来查看是否有太多的连接在等待或运行,以找出性能问题的根本原因。

使用 NineData 查看数据库正在执行的 SQL

在 NineData 中可以非常简单、可视化地完成上述操作,进入SQL 窗口、单击查看会话即可。详细操作可以参考如下动图:

view_sessions