生产环境突然变慢,别慌!OceanBase内置的SQL审计视图就是你的“监控录像”,三步揪出元凶。
1. 找到最近最慢的10条SQL
sql
SELECT SQL_ID, QUERY_SQL, ELAPSED_TIME/1000000 ELAPSED_SEC, EXECUTE_TIME, QUEUE_TIME, NET_WAIT_TIME, IO_WAIT_TIME FROM oceanbase.GV$OB_SQL_AUDIT WHERE REQUEST_TIME > DATE_SUB(NOW(), INTERVAL 10 MINUTE) ORDER BY ELAPSED_TIME DESC LIMIT 10;
2. 分析关键字段含义
-
ELAPSED_TIME:总耗时(微妙),越大越慢 -
EXECUTE_TIME:实际执行耗时 -
QUEUE_TIME:排队等待耗时(高说明并发冲突) -
IO_WAIT_TIME:磁盘IO等待(高说明索引缺失) -
NET_WAIT_TIME:网络传输耗时(分布式查询看这个)
3. 定位具体慢在哪
sql
– 查看某条SQL的完整执行计划 SELECT OPERATOR, OBJECT_NAME, ROWS, COST FROM TABLE(DBMS_XPLAN.DISPLAY_AUDIT(‘你的SQL_ID’));
小技巧 :如果QUEUE_TIME 占比高,查锁等待;IO_WAIT_TIME 高,加索引;NET_WAIT_TIME 高,优化分区键。
【标签】 #性能诊断 #SQL审计 #慢查询 #运维实战