Navicat 16 不支持 SQL Profiling 图表功能,因其无内置采集模块,仅能以表格形式展示 MySQL 的 SHOW PROFILES 结果,且不跨会话、不保留历史、不解析阶段耗时,需借助 Navicat Monitor、performance_schema 或外部 BI 工具实现图表分析。

Navicat 16 本身不提供内置的 SQL Profiling 图表功能;它依赖数据库原生的 profiling 能力(如 MySQL 的 SHOW PROFILES),且仅能以表格形式展示结果,无法生成时间轴图表。
为什么 Navicat 16 点不开「SQL Profiling 图表」
Navicat 没有独立的 profiling 数据采集模块,也不支持将 SHOW PROFILES 结果自动转为折线图、堆叠图或热力图。你看到的“性能图表”类功能,实际来自 Navicat Monitor(独立产品)或手动导出后用 Excel/BI 工具处理。在 Navicat 16 查询编辑器中执行 SHOW PROFILES,只会返回一个带 Query_ID、Duration、Query 三列的表格——没有时间维度、没有聚合、不能筛选时间段。
- MySQL 的 profiling 是会话级、临时开启的功能,Navicat 每次新建查询标签页都是一次新会话,
SET profiling = 1不跨标签页生效 -
SHOW PROFILES只保留最近 100 条(默认),且重启连接即清空,不适合趋势分析 - Navicat 16 不解析
SHOW PROFILE FOR QUERY N的详细阶段耗时(如Creating tmp table、Sorting result),这些只能靠人工翻表
如何用 Navicat 16 配合 MySQL 实现近似 profiling 分析
绕过缺失图表能力,用组合操作逼近目标:定位慢语句 → 提取耗时分布 → 手动比对关键阶段。
- 在查询编辑器中先执行:
SET profiling = 1; - 紧接着运行你要分析的 SQL(必须在同一标签页、同一会话)
- 再执行:
SHOW PROFILES;—— 记下对应Query_ID - 执行:
SHOW PROFILE FOR QUERY N;(把N替换为上一步查到的 ID),重点看Status和Duration列 - 若需横向对比多次执行,可把多轮
SHOW PROFILE FOR QUERY N结果复制到 Excel,用「Status」作横轴、「Duration」作纵轴手动画柱状图
真正能出图表的替代路径(不依赖 Navicat 16)
如果你需要带时间轴、支持筛选、可导出 PDF 的性能图表,必须跳出 Navicat 16 单点工具思维:
- 用
performance_schema.events_statements_summary_by_digest(MySQL 5.6+)定期采样,写入一张汇总表(如perf_digest_hourly),字段含digest_text、avg_timer_wait、count_star、collect_time;然后把这个表作为数据源接入 Navicat BI(需单独授权) - 部署 Navicat Monitor:它自动采集
sys.dm_exec_query_stats(SQL Server)、pg_stat_statements(PostgreSQL)或 MySQL 的 performance_schema,并在 Web 仪表板中提供「查询延迟趋势」「Top 10 慢查询」等预置图表,支持按database_name、user_host交叉筛选 - 导出
slow_query_log解析后的 CSV,用 Python pandas + matplotlib 或 Grafana + Prometheus(配合 mysqld_exporter)生成动态图表
Navicat 16 的价值在于快速触发和查看单次 profiling 表格,但真正的趋势归因、瓶颈聚类、跨时段对比,得靠外部存储+可视化层。别在「解释」按钮旁边找图表入口——那个图标只负责格式化文本执行计划,不是性能监控中心。











