本文介绍了如何查看会话诊断信息,包括会话的统计信息、会话状态等。
查看会话统计信息
登录 OceanBase 管理控制台。
在左侧导航栏,选择 自治服务 > 诊断中心。
在 实例详情 区域,单击目标实例名称。
系统自动跳转到诊断中心。
在左侧导航栏,单击 会话诊断。
在 统计信息 区域,您可以查看数据库当前会话统计信息和租户会话详情,包括活跃会话和空闲会话。您也可以选择租户后,通过 租户会话、会话统计、死锁检测、行锁分析 四个页签查看对应详情。
查看租户会话
在 租户会话 页签:
勾选 仅查看活跃会话,在会话列表中查看活跃会话信息。
勾选 按 SQL ID 聚合会话,将相同 SQL ID 的会话进行汇总展示。
说明按 SQL ID 聚合可以帮助您分析不同 SQL ID 的流量和消耗对比,确认系统资源消耗方。
通过 用户 和 数据库名 对会话进行筛选。
通过 会话 ID、SQL 、来源 和 目标端 对会话进行搜索。
通过 执行时间 对会话进行排序。
单击 SQL 文本,跳转至 SQL 执行详情 页面。
对于满足如下条件之一的 SQL,SQL 执行详情 页面会显示算子执行计划及算子执行详情,如下图所示:
使用了 MONITOR Hint 的 SQL
使用了与并行执行相关 Hint 的 SQL
慢 SQL(执行时间超过 5s)
说明对于快速执行的算子,可能不会显示统计信息。
关于 MONITOR Hint,请参见 MONITOR Hint;关于与并行执行相关的 Hint,请参见 与并行执行相关的 Hint。
对于其他 SQL,SQL 执行详情 页面仅显示算子执行计划。
关闭会话。
关闭一条对话:单击该会话后操作列下的 关闭会话。
关闭多条对话:勾选目标会话前的复选框,然后单击右侧的 批量关闭会话。
关闭所有对话:
单击 会话 ID 左侧的复选框,然后单击右侧的 批量关闭会话。
任意勾选一条会话,单击上方的 全选,然后单击右侧的 批量关闭会话。
在弹出的确认框中,单击 确定。
查看会话统计
在 会话统计 页签:
您可以从用户、访问来源和数据库维度分别查看或导出当前集群的会话活跃数和会话总数。
单击右上方 10 秒 SQL 分析,您可以从 SQL 类型、用户、来源、数据库 维度查看 10 秒内租户内 SQL 执行情况。
查看死锁检测
在 死锁检测 页签:
首次使用死锁检测功能时,单击 开启死锁检测。启用后,系统将实时检测并处理死锁事件,这将消耗 2% 左右的性能。请根据您的集群状况谨慎选择是否启用此功能。
说明死锁检测功能仅支持 OceanBase 4.x 版本。
开启死锁检测后,系统将诊断该集群租户中是否存在死锁,并在 死锁详情 区域提供诊断结果。该结果会保留 7 天。
单击右上角 关闭死锁检测 或 刷新 ,关闭死锁检测功能或刷新死锁检测详情。
查看行锁分析
在 行锁分析 页签:
您可以查看锁涉及的行信息和会话数量。
选择目标租户后,系统会展示该租户的行锁详细信息。
若需释放持有锁的会话,您可以关闭该会话。在关闭前,请确认该会话以及其上正在运行的业务 SQL 可以安全终止。
行锁分析是一项实时查询功能,仅展示等待锁时间超过 20 ms 的行锁及其相关会话信息。此功能仅支持 OceanBase 4.2 及以上版本。
行锁信息可能存在延迟。若未显示持有锁的会话 ID,说明该事务可能已经完成。