Navicat 部落格

使用 Navicat Monitor 2 對緩慢的查詢執行進行疑難排解 2020 年 6 月 11 日,由 Robert Gravelle 撰寫

想找出查詢執行緩慢的根本原因需要考慮到許多因素,並要採取一種有組織的方法。幸運的是,只需下一點功夫,檢查幾項事情就能將問題弄清楚為更常見的元凶之一。在今天的文章中,我們將學習 Navicat Monitor 2 如何幫助你解決緩慢的查詢執行。

網路問題

資料庫伺服器被設計為可以透過內部或外部網路存取,例如全球資訊網(World-wide Web)。因此,偶爾會遇到連線斷線,中斷甚至可能持續數小時或數天。在本機環境中良好的效能是相當不錯,但不一定足以完全排除網路問題,因為伺服器本身可能會超載。你可以使用能追蹤伺服器作業系統度量(例如 CPU程序和記憶體)的監控工具做測試。Navicat Monitor 就能透過追蹤 O/S 度量來提供幫助。

如使用 Windows 類型伺服器,你可以配置「CPU 和記憶體」部分,透過簡單網路管理協定(Simple Network Management Protocol,簡稱 SNMP)監控 O/S 度量:

edit_instance_dialog (74K)

這樣做儀表板中的執行個體卡片會顯示伺服器度量(例如 CPU、記憶體和磁碟使用量):

dashboard_with_cpu_metrics (58K)

你還可以按一下系統度量以查看更多詳細資料,包括調換使用量、連線和網路輸送量。每個度量都有一個可互動的圖表:

system_metrics (50K)

查詢監控

排除了網路問題後,就可以仔細檢查查詢本身了。查詢取得正確的資料在功能上可以是正確的,但是透過有效的方式仍然可以做到這一點。設計查詢以將效率升到最高的方法至關重要,因為根據資料庫引擎的不同,所有查詢都可能按順序執行。舉個例子,MySQL 的 MyISAM 引擎在執行查詢時會取得資料表層級鎖定,以保護交易期間的資料完整性。在此期間,其他程序或查詢必須等到第一個查詢完成後才能執行。如果第一個查詢需要長時執行,那等待可能會很漫長!

Navicat Monitor 的「查詢分析器」在這方面非常有用。它顯示所有正在執行的查詢的摘要資訊,並讓你找到有問題的查詢,包括:

  • 累計執行時間最長的查詢
  • 回應時間不可接受的慢速查詢
  • 死結(當兩個或多個查詢永久互相封鎖時)
query_analyzer (125K)

總結

在今天的文章中,我們了解了 Navicat Monitor 2 如何幫助你解決查詢執行緩慢的問題!

Navicat Monitor 一套安全、簡單而且無代理程式的遠端 MySQL、MariaDB 和 SQL Server 伺服器監控工具。它包含一組豐富的即時和歷史圖表,可讓你深入了解伺服器統計的詳細資料。最新版本的 Navicat Monitor(版本 2.0)現支援 SQL Server!

Navicat Monitor 版本 2.0 現已在 Navicat線上商店出售,價格分別為 499 美元/記號(商業)和 199 美元/記號(非商業)。1 個記號可用於解鎖 1 個 MySQL 伺服器、1 個 MariaDB 伺服器或 1 個 SQL Server。

此處了解有關 Navicat Monitor 所有功能的更多詳細資訊,或者下載 14天全功能免費試用版!

Navicat 文章
頻道記錄
分享
部落格封存檔