OCP 上的 SQL 监控服务主要有 TopSQL 和 SlowSQL 两部分,目前可开放给 DBA 以及普通用户,用来定位集群运行性能异常及普通 SQL 执行异常,通过分析 TopSQL 和 SlowSQL,达到解决集群性能异常问题和提高 SQL 执行效率的目的。
背景信息
TopSQL 和 SlowSQL 的区别如下:
TopSQL 为不同内容的 SQL 按执行效率高低进行排序展示;
慢查询为所有超过慢查询阈值的 SQL 按执行效率进行排序展示,可通过指定 SQL 内容分析某个具体 SQL 在不同时间段内性能变化的原因。
TopSQL 和 SlowSQL 的用途如下:
TopSQL 查询结果通常可反映出一个 OceanBase 集群、租户或服务器在某段时间内所执行所有不同类型 SQL 的性能差异,通常用它可定位到数据库中性能较差的 SQL。
而慢查询查询结果通常可反映出某条 SQL 在不同的时间段内性能变化,通常用它可定位出SQL 性能变化的原因。
说明
不同 OCP 版本的操作界面可能不同,本节以 OCP V2.4.4 版本为例提供操作指导,OCP 其他版本的操作请参考对应版本的《OCP 用户指南》文档。
TopSQL
您可以通过筛选条件筛选出异常的 SQL,并通过 SQL 历史趋势和物理执行计划来定位 SQL 执行异常的原因,从而解决您的问题。
登录 OCP。
在页面右上角单击 回到旧版。
在左侧导航栏上,单击 监控 > TopSQL,进入 TopSQL 监控界面。
在页面上方,可选择目标集群集群、Zone、OBServer、租户以及时间范围维度。
建议时间起止时间不超过一天,否则可能导致界面查询超时。
在搜索到目标范围内的 SQL 集合后,在 扩展列 列表中选择需要展示的性能指标并在 SQL 类型 列表中选择指定类型。
通常可通过 响应时间**、**最慢一次执行耗时 指标精确定位到对应的 SQL,单击 SQL 序号,进入 SQL 详情界面,查看详细 SQL 文本及 SQL 历史趋势。
- 在 SQL 诊断 区域单击 物理执行计划 页签,通过物理执行计划找到 SQL 执行异常原因。
SlowSQL
慢 SQL 问题极大的影响数据库的稳定性。从数据库角度看:每个 SQL 执行都需要消耗一定 I/O 资源,SQL 执行的快慢,决定资源被占用时间的长短。假设总资源是 100,有一条慢 SQL 占用了 30 的资源共计 1 分钟。那么在这 1 分钟时间内,其他 SQL 能够分配的资源总量就是 70,如此循环,当资源分配完的时候,所有新的 SQL 执行将会排队等待,从而影响数据库系统的吞吐率。从应用的角度看:SQL 执行时间长意味着等待,在 OLTP 应用中,用户的体验较差。所以当数据库出现负载高、性能抖动等问题,DBA 或者开发首先都会查看是否有慢 SQL 在执行。
登录 OCP。
在页面右上角单击 回到旧版。
在左侧导航栏上,单击 监控 > SlowSQL,进入 TopSQL 监控界面。
在页面上方,可选择集群、Zone、OBServer、租户、用户名、SQL_ID(通常相同执行计划的 SQL 拥有相同的 SQL_ID)、Query SQL、时间维度,单击 搜索 后即可得到指定时间内包含
Query SQL
输入的内容的 SQL 统计。注意
此界面展示指标为固定指标,无法像 TopSQL 结果指标一样进行自定义指标。
单击 查看,可看到具体 SQL 明细内容,其中
elapsed_time
指标单位为微秒。