---
title: GV$OB_SQL_AUDIT 查到部分 SQL 为空且显示耗时长-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 GV$OB_SQL_AUDIT 查到部分 SQL 为空且显示耗时长相关的常见问题和使用技巧，帮助您快速解决 GV$OB_SQL_AUDIT 查到部分 SQL 为空且显示耗时长的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# GV$OB_SQL_AUDIT 查到部分 SQL 为空且显示耗时长

更新时间：2025-09-04 11:41

适用版本： V4.0.x、V4.1.x、V4.2.x、V4.3.x 内容类型：TechNote  

## 问题描述

如图，GV$OB_SQL_AUDIT 视图查到部分 SQL 为空且显示耗时长

![1](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/sql/database-object-management/view/1.png)

## 适用版本

OceanBase 数据库 V4.x 版本。

## 问题原因

- 情况 1：参数 `_enable_sql_audit_query_sql` 未设置为 True，可以在 sys 租户下直接查看看是否存在 query_sql，如果存在，则为该参数未打开导致。同时也可以在 sys 租户下通过查询参数 `_enable_sql_audit_query_sql` 的值进行确认，具体语句如下：

  ```shell
  obclient> select * from GV$OB_PARAMETERS where name like '%_enable_sql_audit_query_sql%' where TENANT_ID=xxx;

  ```
 - 情况 2：可能该 SQL 为整体 SQL 的一部分，可以根据 trace_id 查询，是否查询结果存在多行并且至少有一行 query_sql 是不为空的，如果是该现象，则符合预期。

## 解决方法

- 如果是上述情况 1，则在业务租户下通过如下 SQL 开启隐藏参数：

  ```shell
  obclient> ALTER SYSTEM SET _enable_sql_audit_query_sql = true;

  ```
 - 如果为上述情况 2，则无需处理，符合预期。一个 SQL 在执行时，可能在 SQL_AUDIT 中存在多条记录，有些记录的 query_sql 可能为空，因为这涉及到分布式执行、px 调度等等都有可能，然后这些子计划的执行的 query_sql 就不会展示出来，因为可能经过了改写等等之类的。

上一篇

[为什么 gv$plan_cache_plan_stat 里的 SLOWEST_EXE_USEC 记录不准确](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000004409029)

下一篇

[嵌套物化视图与级联刷新](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000004710317) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
