ByteHouse 企业版支持 SQL 诊断,通过收集慢 Query 日志,提供多维度的性能指标、趋势和明细分析,帮助您洞察集群与实例的性能表现,精准定位低效查询,从而实现针对性的 SQL 优化。该功能适用于数据库性能瓶颈排查、周期性系统健康巡检、或特定业务模块 SQL 效率分析等场景。本文介绍了如何使用 SQL 诊断功能。
SQL 诊断是 ByteHouse 提供的查询优化诊断工具,其主要功能包括:
当前 ByteHouse 支持的诊断项包括:
诊断项 | 说明 |
|---|---|
洞察明细 | |
Query 总数 | 所选时间段的 Query 总数。 |
Query 成功数 | 所选时间段成功的 Query 总数。 |
Query 失败数 | 所选时间段失败的 Query 总数。 |
失败Query明细 | 展示了 Query 错误类型、数量,便于您治理 Query 错误。同时,ByteHouse 也展示了 Query ID、Query 内容、错误日志、CPU 使用率、内存使用率、Query 耗时、提交 Query 的用户等详细信息,方便您进一步了解失败 Query 的详情。 |
成功/失败Query趋势 | 展示所选时间段的成功和失败的 Query 次数比例,方便了解当前实例的 Query 整体运行情况。 |
Query 耗时占比趋势 | 展示所选时间段的 Query 耗时占比趋势,默认仅分析 SELECT、INSERT 这两类 Query 的耗时占比情况。 |
DML 分析 | |
DML 趋势 | 展示 DML Query 的执行次数趋势,默认仅分析 ALTER、INSERT 这两类Query。 |
DDL 趋势 | 展示 DDL Query 的执行次数趋势。 |
Query 分析 | |
Query应用来源的占比情况&按Query应用来源的Query趋势 | 展示 |
用户维度的Query占比情况&按用户维度的Query趋势 | 展示 |
损耗 Top5 | |
耗时 Top5 Query | 展示执行耗时最长的前 5 条 Query。 |
消耗CPU Top5 Query | 展示 CPU 资源消耗最多的前 5 条 Query。 |
消耗内存 Top5 Query | 展示内存资源消耗最多的前 5 条 Query。 |
SQL指纹分析 | 对 SELECT、INSERT 类型的 Query,ByteHouse 会计算一个 MD5 哈希值作为该 Query 的 SQL 指纹,您可通过该参数分析全局性地识别出资源消耗显著的查询模式。
|
使用前,请确保您拥有 Cluster Admin 或 System Admin 权限。如果您尚未获取此权限,请联系管理员授权,详情请参考管理用户的角色权限。
登录 ByteHouse 企业版控制台,单击顶部诊断优化页签,单击SQL 诊断,进入功能页面。选择集群及时间范围,单击诊断,系统将自动分析并展示当前集群中在指定时间范围内执行的 SQL 情况。各类诊断项可用于协助诊断查询情况,您可结合您的业务问题及诊断项,分析问题原因,并采取相应的优化措施。
洞察明细展示了当前集群整体 Query 执行情况,您可通过此类诊断项快速发现异常时段,例如,
DML 分析展示了当前集群中 DDL 和 DML 的执行趋势,您可监控操作频率、识别异常波动,辅助评估元数据变更及数据读写对集群的影响。
Query 分析展示了当前集群中 Query 的来源分布和执行 Query 的用户,您可根据趋势图及失败 Query 趋势共同分析 Query 失败来源。
损耗分析提供了执行耗时、消耗 CPU 及内存资源最多的 Query 及明细,并支持 SQL 指纹分析,帮助您识别影响系统性能的查询。