OceanBase logo

OceanBase

A unified distributed database ready for your transactional, analytical, and AI workloads.

Product Overview
DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Resources

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS

OceanBase Cloud

OceanBase Database

Tools

Connectors and Middleware

QUICK START

OceanBase Cloud

OceanBase Database

BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Company

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

International - English
中国站 - 简体中文
日本 - 日本語
Sign In
Start on Cloud

OceanBase

A unified distributed database ready for your transactional, analytical, and AI workloads.

Product Overview
DEPLOY YOUR WAY

OceanBase Cloud

The best way to deploy and scale OceanBase

OceanBase Enterprise

Run and manage OceanBase on your infra

TRY OPEN SOURCE

OceanBase Community Edition

The free, open-source distributed database

OceanBase seekdb

Open source AI native search database

Customer Stories

Real-world success stories from enterprises across diverse industries.

View All
BY USE CASES

Mission-Critical Transactions

Global & Multicloud Application

Elastic Scaling for Peak Traffic

Real-time Analytics

Active Geo-redundancy

Database Consolidation

Comprehensive knowledge hub for OceanBase.

Blog

Live Demos

Training & Certification

Documentation

Official technical guides, tutorials, API references, and manuals for all OceanBase products.

View All
PRODUCTS
OceanBase CloudOceanBase Database
ToolsConnectors and Middleware
QUICK START
OceanBase CloudOceanBase Database
BEST PRACTICES

Practical guides for utilizing OceanBase more effectively and conveniently

Learn more about OceanBase – our company, partnerships, and trust and security initiatives.

About OceanBase

Partner

Trust Center

Contact Us

Start on Cloud
编组
All Products
    • Databases
    • iconOceanBase Database
    • iconOceanBase Cloud
    • iconOceanBase Tugraph
    • iconInteractive Tutorials
    • iconOceanBase Best Practices
    • Tools
    • iconOceanBase Cloud Platform
    • iconOceanBase Migration Service
    • iconOceanBase Developer Center
    • iconOceanBase Migration Assessment
    • iconOceanBase Admin Tool
    • iconOceanBase Loader and Dumper
    • iconOceanBase Deployer
    • iconKubernetes operator for OceanBase
    • iconOceanBase Diagnostic Tool
    • iconOceanBase Binlog Service
    • Connectors and Middleware
    • iconOceanBase Database Proxy
    • iconEmbedded SQL in C for OceanBase
    • iconOceanBase Call Interface
    • iconOceanBase Connector/C
    • iconOceanBase Connector/J
    • iconOceanBase Connector/ODBC
    • iconOceanBase Connector/NET
icon

OceanBase Database

SQL - V4.1.0

    Download PDF

    OceanBase logo

    The Unified Distributed Database for the AI Era.

    Follow Us
    Products
    OceanBase CloudOceanBase EnterpriseOceanBase Community EditionOceanBase seekdb
    Resources
    DocsBlogWhite PaperLive DemosTraining & CertificationTicket
    Company
    About OceanBaseTrust CenterLegalPartnerContact Us
    Follow Us

    © OceanBase 2026. All rights reserved

    Cloud Service AgreementPrivacy PolicySecurity
    Contact Us
    Document Feedback
    1. Documentation Center
    2. OceanBase Database
    3. SQL
    4. V4.1.0
    iconOceanBase Database
    SQL - V 4.1.0
    Databases
    • OceanBase Database
    • OceanBase Cloud
    • OceanBase Tugraph
    • Interactive Tutorials
    • OceanBase Best Practices
    Tools
    • OceanBase Cloud Platform
    • OceanBase Migration Service
    • OceanBase Developer Center
    • OceanBase Migration Assessment
    • OceanBase Admin Tool
    • OceanBase Loader and Dumper
    • OceanBase Deployer
    • Kubernetes operator for OceanBase
    • OceanBase Diagnostic Tool
    • OceanBase Binlog Service
    Connectors and Middleware
    • OceanBase Database Proxy
    • Embedded SQL in C for OceanBase
    • OceanBase Call Interface
    • OceanBase Connector/C
    • OceanBase Connector/J
    • OceanBase Connector/ODBC
    • OceanBase Connector/NET
    SQL
    KV
    • V 4.6.0
    • V 4.4.2
    • V 4.3.5
    • V 4.3.3
    • V 4.3.1
    • V 4.3.0
    • V 4.2.5
    • V 4.2.2
    • V 4.2.1
    • V 4.2.0
    • V 4.1.0
    • V 4.0.0
    • V 3.1.4 and earlier

    GV$OB_SQL_AUDIT

    Last Updated:2023-08-01 06:02:28  Updated
    Share
    What is on this page
    Feature
    Fields
    General SQL information
    SQL routing information
    Slow SQL statistics
    SQL statistics within a transaction
    SQL statements executed in the same session

    folded

    Share

    Feature

    GV$OB_SQL_AUDIT displays the statistics of each SQL request on all OBServers, such as its source and execution status. This view is tenant-specific, and only the sys tenant can query this view in other tenants.

    Fields

    Field
    Type
    Nullable
    Description
    SVR_IP varchar(46) NO The IP address.
    SVR_PORT bigint(20) NO The port number.
    REQUEST_ID bigint(20) NO The ID of the request.
    SQL_EXEC_ID bigint(20) NO The ID of the execution, which monotonically increases on a single server.
    TRACE_ID varchar(128) NO The trace ID of the statement.
    SID bigint(20) unsigned NO The ID of the session connection.
    CLIENT_IP varchar(46) NO
  • When the client is connected to the OBServer by using OceanBase Database Proxy (ODP), this field indicates the IP address of the ODP instance that forwarded the request.
  • When the client is directly connected to the OBServer, this field indicates the IP address of the client that sent the request.
  • CLIENT_PORT bigint(20) NO The port number of the client that sent the request.
    TENANT_ID bigint(20) NO The ID of the tenant that sent the request.
    TENANT_NAME varchar(64) NO The name of the tenant that sent the request.
    EFFECTIVE_TENANT_ID bigint(20) NO The ID of the tenant.
    USER_ID bigint(20) NO The ID of the user that sent the request.
    USER_NAME varchar(64) NO The name of the user that sent the request.
    USER_GROUP bigint(20) YES The ID of the resource group to which the user belongs.
    USER_CLIENT_IP varchar(46) NO The IP address of the client that sent the request.
    DB_ID bigint(20) unsigned NO The ID of the database.
    DB_NAME varchar(128) NO The name of the database.
    SQL_ID varchar(32) NO The ID of the SQL statement.
    QUERY_SQL longtext NO The actual SQL statement.
    PLAN_ID bigint(20) NO The ID of the execution plan.
    AFFECTED_ROWS bigint(20) NO The number of rows affected.
    RETURN_ROWS bigint(20) NO The number of rows returned.
    PARTITION_CNT bigint(20) NO The number of partitions scanned by the request.
    RET_CODE bigint(20) NO The return code of the execution.
  • 0: indicates that the statement is successfully executed without errors.
  • Other return codes: indicate that OceanBase Database has encountered an error. For more information about the error codes, see Error codes
  • QC_ID bigint(20) unsigned NO The ID of the scheduler in the parallel execution scenario.
    DFO_ID bigint(20) NO The ID of the sub-plan being executed in the parallel execution scenario.
    SQC_ID bigint(20) NO The ID of the local coordinator in the parallel execution scenario.
    WORKER_ID bigint(20) NO The ID of the worker thread in the parallel execution scenario.
    EVENT varchar(64) NO The name of the wait event with the longest wait time.
    P1TEXT varchar(64) NO The first parameter of the wait event.
    P1 bigint(20) unsigned NO The value of the first parameter of the wait event.
    P2TEXT varchar(64) NO The second parameter of the wait event.
    P2 bigint(20) unsigned NO The value of the second parameter of the wait event.
    P3TEXT varchar(64) NO The third parameter of the wait event.
    P3 bigint(20) unsigned NO The value of the third parameter of the wait event.
    LEVEL bigint(20) NO The level of the wait event.
    WAIT_CLASS_ID bigint(20) NO The ID of the class to which the wait event belongs.
    WAIT_CLASS# bigint(20) NO The subscript of the class to which the wait event belongs.
    WAIT_CLASS varchar(64) NO The name of the class to which the wait event belongs.
    STATE varchar(19) NO The state of the wait event.
    WAIT_TIME_MICRO bigint(20) NO The wait time of the wait event in microseconds.
    TOTAL_WAIT_TIME_MICRO bigint(20) NO The total wait time in microseconds during execution.
    TOTAL_WAITS bigint(20) NO The total number of waits during the execution.
    RPC_COUNT bigint(20) NO The number of remote procedure calls (RPCs) sent.
    PLAN_TYPE bigint(20) NO The type of the execution plan. Valid values:
  • local
  • remote
  • distribute
  • IS_INNER_SQL tinyint(4) NO Indicates whether the request is an internal SQL request.
    IS_EXECUTOR_RPC tinyint(4) NO Indicates whether the current request is an RPC request.
    IS_HIT_PLAN tinyint(4) NO Indicates whether the plan cache is hit.
    REQUEST_TIME bigint(20) NO The time when the execution starts.
    ELAPSED_TIME bigint(20) NO The amount of time elapsed from when the request was received to when the execution of the request ended.
    NET_TIME bigint(20) NO The amount of time elapsed from when the RPC was sent to when the request was received.
    NET_WAIT_TIME bigint(20) NO The amount of time elapsed from when the request was received to when it entered the queue.
    QUEUE_TIME bigint(20) NO The time that the request waits in the queue.
    DECODE_TIME bigint(20) NO The time spent on decoding the request after it left the queue.
    GET_PLAN_TIME bigint(20) NO The amount of time elapsed from when the processing started to when the plan was obtained.
    EXECUTE_TIME bigint(20) NO The time consumed for plan execution.
    APPLICATION_WAIT_TIME bigint(20) unsigned NO The total amount of time spent on waiting for events of the application class.
    CONCURRENCY_WAIT_TIME bigint(20) unsigned NO The total amount of time spent on waiting for events of the concurrency class.
    USER_IO_WAIT_TIME bigint(20) unsigned NO The total amount of time spent on waiting for events of the user_io class.
    SCHEDULE_TIME bigint(20) unsigned NO The total amount of time spent on events of the schedule class.
    ROW_CACHE_HIT bigint(20) NO The number of row cache hits.
    BLOOM_FILTER_CACHE_HIT bigint(20) NO The number of Bloom filter cache hits.
    BLOCK_CACHE_HIT bigint(20) NO The number of block cache hits.
    DISK_READS bigint(20) NO The number of physical reads.
    RETRY_CNT bigint(20) NO The number of retries.
    TABLE_SCAN tinyint(4) NO Indicates whether the request contains a full table scan.
    CONSISTENCY_LEVEL bigint(20) NO The consistency level.
    MEMSTORE_READ_ROW_COUNT bigint(20) NO The number of rows read in the MemStore.
    SSSTORE_READ_ROW_COUNT bigint(20) NO The number of rows consecutively read in the SSStore.
    DATA_BLOCK_READ_CNT bigint(20) NO The number of data microblocks accessed.
    DATA_BLOCK_CACHE_HIT bigint(20) NO The number of data microblock cache hits.
    INDEX_BLOCK_READ_CNT bigint(20) NO The number of intermediate-layer microblocks accessed.
    INDEX_BLOCK_CACHE_HIT bigint(20) NO The number of intermediate-layer microblock cache hits.
    BLOCKSCAN_BLOCK_CNT bigint(20) NO The number of data microblocks scanned during a unilateral scan.
    BLOCKSCAN_ROW_CNT bigint(20) NO The number of data rows scanned during a unilateral scan.
    PUSHDOWN_STORAGE_FILTER_ROW_CNT bigint(20) NO The number of rows that remain after the filter condition is pushed down to and applied in the storage layer.
    REQUEST_MEMORY_USED bigint(20) NO The memory consumed by the request.
    EXPECTED_WORKER_COUNT bigint(20) NO The number of worker threads expected by the request.
    USED_WORKER_COUNT bigint(20) NO The number of worker threads used by the request.
    SCHED_INFO varchar(16384) YES The scheduling information of the request.
    FUSE_ROW_CACHE_HIT bigint(20) NO At present, this field is not supported and is NULL by default.
    PS_CLIENT_STMT_ID bigint(20) NO The ID of the PREPARE statement corresponding to the request.
    • -1: indicates that the prepared statement (PS) protocol is not used in the SQL statement.
    • A value other than -1: indicates that the PS protocol is used in the SQL statement, and indicates the unique identifier returned by the PS protocol on the client for the statement.
    PS_INNER_STMT_ID bigint(20) NO The ID of the PREPARE statement corresponding to the request.
    • -1: indicates that the prepared statement (PS) protocol is not used in the SQL statement.
    • A value other than -1: indicates that the PS protocol is used in the SQL statement, and indicates the unique identifier returned internally by the PS protocol for the statement.
    TX_ID bigint(20) NO The hash value of the transaction corresponding to the request.
    SNAPSHOT_VERSION bigint(20)unsigned NO The snapshot version of the current statement.
    REQUEST_TYPE bigint(20) NO The type of the request. Valid values:
  • 0: indicates an invalid request.
  • 1: indicates an internal request.
  • 2: indicates a local request whose execution plan is a local plan.
  • 3: indicates a remote request.
  • 4: indicates a distributed request.
  • 5: indicates an SQL PREPARE request.
  • 6: indicates an SQL Execute Stmt request.
  • IS_BATCHED_MULTI_STMT tinyint(4) NO Indicates whether optimization has been performed for batch execution of multiple statements.
    OB_TRACE_INFO varchar(4096) NO The trace information configured by the user.
    PLAN_HASH bigint(20) unsigned NO The hash value of the execution plan.
    LOCK_FOR_READ_TIME bigint(20) NO The time in microseconds spent on waiting for locked data to be unlocked before it can be read.
    PARAMS_VALUE longtext NO The parameter value during the execution of the PS statement.

    General SQL information

    SQL routing information

    In OceanBase Database, SQL plans are divided into the following four types:

    • Local plans: The transaction session and the Leader of the partitions involved in the SQL statement are on the same OBServer. The SQL statement may involve multiple partitions, but a table cannot contain multiple partitions.

    • Remote plans: The transaction session and the Leader of the partitions involved in the SQL statement are on different OBServers. The SQL statement may involve multiple partitions, but a table cannot contain multiple partitions.

    • Distributed plans: The SQL statement involves operations on multiple partitions. The partitions can be in one or more OBServers.

    • Uncertain plans: The number of partitions involved cannot be determined when the SQL statement is executed. These SQL execution plans typically exist in scenarios with global indexes and foreign keys.

    Local transactions are committed more efficiently than cross-OBServer transactions. Therefore, you need to check whether the percentages of different types of SQL execution plans are as expected. You can execute the following statement to collect statistics on SQL plans by type.

    select plan_type, count(1) from GV$OB_SQL_AUDIT where tenant_id = *** and request_time > time_to_usec('2021-10-08 12:00:00') group by plan_type;
    

    The value of plan_type can be 1, 2, 3, or 4, indicating local plans, remote plans, distributed plans, or uncertain plans, respectively.

    Slow SQL statistics

    You can query the SQL statements whose execution time exceeds the specified threshold during a period, and thereby optimize the SQL plans based on the query result.

    select tenant_id, elapsed_time, usec_to_time(request_time), substr(query_sql, 1, 50) from GV$OB_SQL_AUDIT where tenant_id=1001 and elapsed_time > 100000 and request_time > time_to_usec('2021-10-08 12:00:00') order by elapsed_time desc limit 40;
    

    SQL statistics within a transaction

    Each SQL statement entry in sql_audit records the unique identifier of the current SQL transaction in transaction_hash. You can check this field to find all SQL information about the current transaction. Then, you can determine whether the transaction model, including single-SQL transaction and multi-SQL transaction, in business stress testing meets your expectation.

    select tenant_id, substr(query_sql,1,50) from GV$OB_SQL_AUDIT where tenant_id=1002 and  TX_ID='***' order by request_time;
    

    SQL statements executed in the same session

    You can query all business requests by the SID to analyze the business model.

    select tenant_id, substr(query_sql,1,50) from GV$OB_SQL_AUDIT where tenant_id=1002 and sid=1001 and request_time > time_to_usec('2021-10-08 12:00:00') order by request_time;
    

    Previous topic

    GV$SYSSTAT
    Last

    Next topic

    GV$OB_TRANSACTION_PARTICIPANTS
    Next
    What is on this page
    Feature
    Fields
    General SQL information
    SQL routing information
    Slow SQL statistics
    SQL statistics within a transaction
    SQL statements executed in the same session