【OceanBase DBA早下班系列】—— obdiag 收集的 SQL Monitor Report 如何解读
-- 假设我们已经通过obdiag命令获取了SQL Monitor Report,并将其保存在了变量@report中
DECLARE @report NVARCHAR(MAX);
-- 这里是你从obdiag获取的报告内容
SET @report = '...'; -- 报告内容
-- 解析报告并提取关键信息
SELECT
EventTime = CONVERT(VARCHAR, EventTime, 120),
ExecuteCount = CAST(ExecuteCount AS INT),
ExecuteErrorCount = CAST(ExecuteErrorCount AS INT),
ExecuteTotalTime = CAST(ExecuteTotalTime AS DECIMAL(10, 3)),
ParseTime = CAST(ParseTime AS DECIMAL(10, 3)),
PlanTime = CAST(PlanTime AS DECIMAL(10, 3)),
ExecuteMinTime = CAST(ExecuteMinTime AS DECIMAL(10, 3)),
ExecuteMaxTime = CAST(ExecuteMaxTime AS DECIMAL(10, 3)),
ExecuteAvgTime = CAST(ExecuteAvgTime AS DECIMAL(10, 3)),
LastErrorTime = CONVERT(VARCHAR, LastErrorTime, 120),
ErrorSQL = ErrorSQL
FROM
dbo.SplitSQLMonitorReport(@report)
WHERE
ExecuteErrorCount > 0;
在这个例子中,我们首先声明了一个变量@report
来保存报告内容,然后通过dbo.SplitSQLMonitorReport
这个函数(需要在数据库中预先定义)来解析报告并提取出错误执行的SQL语句的相关信息。这个例子展示了如何从一个长文本报告中提取有价值的信息,这在日常的运维工作中是非常有用的。
评论已关闭