OceanBase logo

OceanBase

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

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

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

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.2.2

  • What is OceanBase Database
    • Overview
    • Differences between the Enterprise Edition and the Community Edition
    • System architecture
    • Compatibility with Oracle
      • Compatibility with Oracle
      • SQL data types
      • Built-in functions
      • System views
    • Compatibility with MySQL
    • Limitations
  • Get Started
    • Try out OceanBase Database Community Edition
    • Learn OceanBase SQL
      • Before you begin
      • Basic SQL operations (MySQL mode)
      • Basic SQL operations (Oracle mode)
    • Build a sample application (MySQL mode)
      • Build a Python application
      • Build a Java application
      • Build a C application
      • Build a Go application
    • Build a sample application (Oracle mode)
      • Build a Java application
      • Build a C application
    • Try out advanced features of OceanBase Database
      • Scalable OLTP
        • Run the TPC-C benchmark in OceanBase Database
        • Try out the hot row update capability of OceanBase Database
      • Try out operational OLAP
      • Try out parallel import and data compression
      • Try out the multi-tenant feature
    • Video tutorials
  • Develop
    • Develop applications (MySQL mode)
      • Connect to OceanBase Database
        • Overview
        • Connect to an OceanBase tenant by using the mysql client
        • Connect to an OceanBase tenant by using OBClient
        • Connect to OceanBase Database by using ODC
        • Use database connection pool
          • Database connection pool configuration
          • Connect to OceanBase Database by using a Tomcat connection pool
          • c3p0
          • Proxool
          • HikariCP
          • DBCP
          • Commons Pool
          • Druid
      • Sample applications
        • Java
          • Spring Boot
          • Spring Batch
          • Spring Data JDBC
          • Spring Data JPA
          • Hibernate
          • MyBatis
        • Python
          • mysqlclient
          • PyMySQL
        • Go
          • Go-SQL-Driver/MySQL
          • GORM
      • Plan database objects
        • Create a database
        • Create a table group
        • Create a table
        • Create an index
        • Create an external table
      • Write data
        • Insert data
        • Update data
        • Delete data
        • Replace data
      • Read data
        • Single-table queries
        • Join tables
          • INNER JOIN queries
          • FULL JOIN queries
          • LEFT JOIN queries
          • RIGHT JOIN queries
          • Subqueries
          • Lateral derived table
        • Use operators and functions in queries
          • Use arithmetic operators in queries
          • Use numerical functions in queries
          • Use string concatenation operators in queries
          • Use string functions in queries
          • Use datetime functions in queries
          • Use type conversion functions in queries
          • Use aggregate functions in queries
          • Use NULL-related functions in queries
          • Use the CASE conditional operator in queries
          • Use the SELECT ... FOR UPDATE statement to lock query results
          • Use the SELECT ... LOCK IN SHARE MODE statement to lock query results
        • Use a DBLink in queries
        • Set operations
      • Transactions
        • Overview
        • Start a transaction
        • Savepoints
          • Mark a savepoint
          • Roll back a transaction to a savepoint
          • Release a savepoint
        • Commit a transaction
        • Roll back a transaction
      • Application errors
        • Troubleshooting guidelines
          • About error codes
          • Error handling specifications for MySQL-compatible applications
        • Common errors and troubleshooting practices
          • Disconnected from the server, with ERROR 2013 reported
          • Transaction idle timeout, error code ERROR 6002
          • Transaction timed out, with ERROR 4012 reported
          • User locked, with ERROR 3118 reported
          • Incorrect user password, with ERROR 1045 reported
          • Table already exists, with ERROR 1050 reported
          • Table does not exist, with ERROR 1146 reported
          • Duplicate data inserted, with ERROR 1062 reported
          • ERROR 1215 reported in foreign key addition
          • Data truncated while being inserted, with ERROR 1265 reported
    • Develop applications (Oracle mode)
      • Connect to OceanBase Database
        • Overview
        • Connect to an OceanBase tenant by using OBClient
        • Connect to OceanBase Database by using ODC
        • Use database connection pool
          • Database connection pool configuration
          • Tomcat
          • c3p0
          • Proxool
          • HikariCP
          • DBCP
          • Commons Pool
          • Druid
      • Sample applications
        • Java
          • OceanBase Connector/J
          • Spring Boot
          • Spring Batch
          • Spring Data JDBC
          • Spring Data JPA
          • Hibernate
          • MyBatis
          • JFinal
        • C/C++
          • OceanBase Connector/C
          • OceanBase Connector/ODBC
          • SqlSugar
      • Plan database objects
        • Create a table group
        • Create a table
        • Create an index
        • Create an external table
      • Write data
        • Insert data
        • Update data
        • Delete data
        • Replace data
      • Read data
        • Single-table queries
        • Join tables
          • INNER JOIN queries
          • FULL JOIN queries
          • LEFT JOIN queries
          • RIGHT JOIN queries
          • Subqueries
          • Lateral derived table
        • Use operators and functions in queries
          • Use arithmetic operators in queries
          • Use numerical functions in queries
          • Use string concatenation operators in queries
          • Use string functions in queries
          • Use datetime functions in queries
          • Use type conversion functions in queries
          • Use aggregate functions in queries
          • Use NULL-related functions in queries
          • Use CASE functions in queries
          • Use the SELECT...FOR UPDATE statement to lock query results
        • Use a DBLink in queries
        • Set operations
      • Transactions
        • Overview
        • Start a transaction
        • Savepoints
          • Mark a savepoint
          • Roll back a transaction to a savepoint
        • Commit a transaction
        • Roll back a transaction
      • Application errors
        • Troubleshooting guidelines
          • About error codes
          • Error handling specifications for Oracle-compatible applications
        • Common errors and troubleshooting practices
          • Idle transaction timed out, with Error ORA-24761 reported
          • Transaction timed out, with Error ORA-00600 reported
          • User locked, with ERROR 3118 reported
          • Incorrect user password, with ERROR 1045 reported
          • Table already exists, with Error ORA-00955 reported
          • Table does not exist, with Error ORA-04043 reported
          • Duplicate data inserted, with Error ORA-00001 reported
          • Error ORA-00600 reported in foreign key addition
          • Inconsistent data types, with Error ORA-00932 reported
  • Deploy
    • Overview
    • High availability deployment solutions for OceanBase clusters
    • Deploy OceanBase Database Enterprise Edition
      • Deployment process
      • Before deployment
        • Prepare servers
        • Server configuration
        • Prepare installation packages
        • Deploy OAT
      • Deploy through GUI
        • Configure deployment environment using OAT
          • Add a server
        • Deploy OCP
          • Overview
          • Upload installation packages
          • Create MetaDB
          • Deploy OCP
        • Deploy OceanBase clusters using OCP
          • Add a server to the resource pool
          • Deploy a two-replica OceanBase cluster with the arbitration service by using OCP
          • Deploy a single-replica OceanBase cluster by using OCP
          • Deploy a three-replica OceanBase cluster by using OCP
        • (Optional) Deploy ODP
      • Deploy through CLI
        • Configure deployment environment
          • Initialize an OBServer node using oatcli
          • (Optional) Configure the clock source
        • Deploy OceanBase clusters using CLI
          • Deploy an OceanBase cluster with two replicas and an arbitration service using the CLI
          • Deploy a single-replica OceanBase cluster from the CLI
          • Deploy a three-replica OceanBase cluster using the CLI
        • (Optional) Deploy ODP
    • Deploy OceanBase Database Community Edition
      • Overview
      • Deploy locally
        • Software and hardware requirements
        • Before deployment
          • (Optional) Check resources
          • (Optional) Set password-free SSH logon
          • (Optional) Configure the clock source
          • (Optional) Perform disk planning
          • (Optional) Configure limits.conf
          • (Optional) Configure sysctl.conf
          • (Optional) Disable the firewall and SELinux
          • (Optional) Create a user
        • Deploy through GUI
          • Deploy an OceanBase cluster through the GUI of OBD
          • Deploy an OceanBase cluster through the GUI of OCP
        • Deploy OceanBase Database in a production environment by using the CLI
        • Deploy OceanBase Database by using systemd
      • Deploy OceanBase Database in a Kubernetes cluster
    • Clean up an old cluster
  • Migrate
    • Overview
    • Migrate from MySQL databases to OceanBase Database
      • Use OMS to migrate data from a MySQL database to a MySQL tenant of OceanBase Database
      • Use mydumper and myloader to migrate data from a MySQL database to OceanBase Database
      • Use DBCAT to migrate schemas from a MySQL database to OceanBase Database
      • Use DataX to migrate table data from a MySQL database to OceanBase Database
      • Migrate data from a MySQL database to OceanBase Database using CloudCanal
      • Use Canal to synchronize data from a MySQL database to OceanBase Database
      • Use Flink CDC to synchronize data from a MySQL database to OceanBase Database
      • Use ChunJun to migrate data from a MySQL database to OceanBase Database
    • Migrate from OceanBase Database to MySQL databases
      • Use OMS to migrate data from a MySQL tenant of OceanBase Database to a MySQL database
      • Use OMS to migrate incremental data from an Oracle tenant of OceanBase Database to a MySQL database
      • Use DBCAT to migrate schemas from OceanBase Database to a MySQL database
      • Use DataX to migrate table data from OceanBase Database to a MySQL database
      • Synchronize data from OceanBase Database to a MySQL database using Canal
      • Migrate data from a MySQL OceanBase database to a MySQL database using CloudCanal
      • Migrate data from OceanBase Database to a MySQL database using Flink CDC
      • Migrate data from a MySQL database in OceanBase Database to a MySQL database using ChunJun
    • Migrate from Oracle databases to OceanBase Database
      • Use OMS to migrate data from an Oracle database to a MySQL tenant of OceanBase Database
      • Use OMS to migrate data from an Oracle database to an Oracle tenant of OceanBase Database
      • Use DBCAT to migrate schemas from an Oracle database to OceanBase Database
      • Use DataX to migrate table data from an Oracle database to OceanBase Database
    • Migrate from OceanBase Database to Oracle databases
      • Use OMS to migrate data from an Oracle tenant of OceanBase Database to an Oracle database
      • Use DBCAT to migrate schemas from OceanBase Database to an Oracle database
      • Use DataX to migrate table data from OceanBase Database to an Oracle database
    • Migrate from DB2 databases to OceanBase Database
      • Use OMS to migrate data from a DB2 LUW database to a MySQL tenant of OceanBase Database
      • Use OMS to migrate data from a DB2 LUW database to an Oracle tenant of OceanBase Database
      • Use DBCAT to migrate table schemas from a DB2 LUW database to OceanBase Database
    • Migrate from OceanBase Database to DB2 databases
      • Use OMS to migrate data from a MySQL tenant of OceanBase Database to a DB2 LUW database
      • Use OMS to migrate data from an Oracle tenant of OceanBase Database to a DB2 LUW database
    • Migrate from TiDB databases to OceanBase Database
      • Use OMS to migrate data from a TiDB database to a MySQL tenant of OceanBase Database
    • Migrate from PostgreSQL databases to OceanBase Database
      • Use OMS to migrate data from a PostgreSQL database to a MySQL tenant of OceanBase Database
    • Migrate from CSV files to OceanBase Database
      • Use DataX to migrate CSV files to OceanBase Database
      • Import data by using the LOAD DATA statement
    • Import data from SQL files to OceanBase Database
    • Migrate data between OceanBase Database
      • Use OMS to migrate data from an OceanBase tenant to another of the same type
      • Use OMS to migrate data from an OceanBase tenant to another of the same type in active-active disaster recovery scenarios
      • Use OBLOADER & OBDUMPER to migrate data between MySQL tenants in OceanBase Database
      • Use OBLOADER & OBDUMPER to migrate data from a MySQL tenant to an Oracle tenant in OceanBase Database
      • Use OBLOADER & OBDUMPER to migrate data between Oracle tenants in OceanBase Database
      • Use OBLOADER & OBDUMPER to migrate data from an Oracle tenant to a MySQL tenant in OceanBase Database
    • Migrate data using SQL statements
      • Migrate data between tables
      • Migrate resource units
      • Export data by using OUTFILE statements
    • Bypass import
      • Overview
      • Import data in bypass mode by using the LOAD DATA statement
      • Import data in bypass mode by using the INSERT INTO SELECT statement
  • Manage
    • Log on to an OceanBase tenant
    • Manage clusters
      • Overview
      • Cluster parameters
      • Common cluster operations
        • View a zone
        • View a node
        • Restart a node
        • Add a node
        • Delete a node
        • Isolate a node
        • Replace a node
        • Start a zone
        • Add a zone
        • Delete a zone
        • Modify a zone
        • Isolate a zone
        • View cluster parameters
        • Modify cluster parameters
        • Upgrade clusters
          • Upgrade OceanBase Database Enterprise Edition
            • Overview
            • Upgrade the arbitration service
            • Upgrade an OceanBase cluster
            • Check upgrade results
          • Upgrade OceanBase Database Community Edition
            • Upgrade OceanBase Database by using OBD
      • Troubleshoot common problems
        • Failures of a minority of nodes
        • Failures of the majority of nodes
    • Manage tenants
      • Tenant introduction
      • Tenant capacity
      • Tenant types
      • User tenant introduction
      • Tenant system variables
      • Common tenant operations
        • Create a tenant
        • Resource isolation
          • Resource isolation overview
          • Manage resource isolation (Oracle mode)
            • Configure cgroups
            • Calibrate the disk performance
            • Configure user-level resource isolation
            • Configure SQL statement-level resource isolation
            • Update a resource management plan config
            • Delete a resource management plan config
            • Delete a resource management plan
            • Delete a resource group
            • Clear cgroup configurations
          • Manage resource isolation (MySQL mode)
            • Configure cgroups
            • Calibrate the disk performance
            • Configure user-level resource isolation
            • Configure SQL statement-level resource isolation
            • Update a resource management plan config
            • Delete a resource management plan config
            • Delete a resource management plan
            • Delete a resource group
            • Clear cgroup configurations
        • View tenant and resource information
        • View and set the tenant allowlist
        • View tenant system variables
        • Modify system variables of a tenant
        • Scale in/out
          • Introduction to scaling in/out
          • Modify the unit configs for a tenant
          • Modify the number of resource units for a tenant
          • Modify the number of primary zones for a tenant
        • Modify attributes of a resource pool
        • Modify attributes of a tenant
        • Lock and unlock a tenant
        • Drop a tenant
        • Recover a tenant
        • Rename a tenant
        • Manage resource pools
          • View resource pool information
          • Allocate a resource pool to a tenant
          • Remove resource pools from a tenant
          • Merge and split resource pools
          • Drop a resource pool
        • Manage unit configs
          • Query unit configs
          • Modify unit configs
          • Drop unit configs
    • Manage replicas
      • Overview
      • Replica distribution
        • Locality
        • Common locality operations
          • View locality
          • Modify locality
          • Add replicas
          • Remove replicas
          • Adjust the distribution of replicas
          • View the locality change history
          • Migrate units
      • Traffic distribution
      • Data distribution
      • Data load balancing
        • Overview
        • Transfer a partition
    • High availability
      • High availability overview
      • Multi-replica disaster recovery
        • Data link introduction
        • ODP high availability
        • Database-level high availability
        • Disaster recovery architecture and levels
      • Physical standby database disaster recovery
        • Overview
        • Limitations
        • Create a standby tenant
          • Preparations
          • Create an empty standby tenant
          • Create a standby tenant by using the backup and recovery feature
          • Create a standby tenant by using the BACKUP DATABASE PLUS ARCHIVELOG feature
        • Log transmission service
          • Overview
          • Configure log transmission service
            • Set the log restore source
            • Set the log recovery endpoint
          • View log restore source information
          • View the log synchronization progress
          • Pause or resume log synchronization
          • Optimize the log synchronization performance
          • Set the log synchronization bandwidth limit
          • Set log synchronization compression
        • Log storage service
        • Switch roles
          • Overview of tenant roles
          • Switchover
          • Failover
        • Drop primary and standby tenants
      • Arbitration high availability
        • Overview
        • Enable the arbitration service for a tenant
        • Disable the arbitration service for a tenant
        • Modify the log stream downgrade control time
        • Query log stream upgrade/downgrade information
        • Replace the arbitration service for a cluster
        • Remove the arbitration service for a cluster
        • Clear residual cluster information
      • Manage recycle bin
        • Overview
        • Enable or disable the recycle bin
        • View objects in the recycle bin
        • Restore objects from the recycle bin
        • Purge the recycle bin
      • Flashback queries
    • Security and permissions
      • Overview
      • Identification and authentication
        • MySQL mode
          • Identity authentication
          • Password complexity
          • Logon failure processing
        • Oracle mode
          • Identity authentication
          • Password complexity
          • Logon failure processing
      • Access control
        • Overview
        • Users and permissions
          • Overview
          • MySQL mode
            • Create a user
            • Privilege types in MySQL mode
            • Grant privileges
            • Privilege delegation
            • Query user privileges
            • Modify user privileges
            • Lock or unlock a user
            • Drop a user
          • Oracle mode
            • Privilege types in Oracle mode
            • Create a user
            • View the information of a user
            • Grant direct privileges
            • Privilege delegation
            • Manage roles
              • Overview
              • Create a role
              • Grant a role to another role
              • Grant a role to a user
              • Activate or deactivate roles for a user
              • View roles
              • Modify a role
              • Revoke a role
              • Drop a role
            • Grant indirect privileges
            • Query user privileges
            • Modify user privileges
            • Lock or unlock a user
            • Drop a user
        • Network security access control
        • RPC connection authentication
        • Row-level access control
      • Data transmission encryption
        • Overview
        • OBServer transmission encryption
        • ODP transmission encryption
      • Transparent data encryption
        • Overview
        • MySQL mode
          • Enable transparent data encryption for new tables
          • Enable transparent data encryption for existing tables
          • Decrypt a table
        • Oracle mode
          • Enable transparent data encryption for new tables
          • Enable transparent data encryption for existing tables
          • Decrypt a table
      • Security audit
        • Overview
        • Enable security audit
        • Set and view audit rules
        • View audit records
        • Audit user logon operations
        • Audit user operations
        • Audit specified database objects
    • Backup and restore
      • Introduction to physical backup and restore
      • Deploy NFS
      • Log archive
        • Overview
        • Prepare for log archiving
        • Enable ARCHIVELOG
        • Disable ARCHIVELOG
        • View information about pieces
        • View the archiving progress
        • View the archiving history
        • View archiving parameter settings
        • Change the destination of archiving
        • Views related to log archiving
      • Data backup
        • Overview
        • Prepare for the backup
        • Initiate a full data backup job
        • Initiate an incremental data backup job
        • Stop a backup job
        • View the data backup progress
        • View the data backup history
        • View data backup parameter settings
        • Change the backup destination
        • Views for monitoring backup progress and results
      • Clear backup data
        • Automatic cleanup of expired backups
        • Stop backup cleanup
        • Query the backup cleanup progress
        • Query the backup cleanup history
        • Backup cleanup parameter
        • Views related to backup cleanup
      • Restore data
        • Preparations
        • Perform a physical restore
        • Cancel physical restore
        • View the physical restore progress
        • View physical restore results
        • Replay logs to a standby tenant
        • Convert a standby tenant into primary tenant
        • Upgrade a tenant after restore
        • Parameters related to physical restore
        • Views related to physical restore
      • Restore by table
        • Preparations
        • Restore tables
        • Cancel table restore
        • View the table restore progress
        • View the table restore result
        • Parameters related to table restore
        • Views related to table restore
      • Optimize backup and restore performance
    • Monitor
      • Overview
      • Metrics
        • System monitoring
          • Overview
          • Metrics
          • Wait events
          • Latch events
        • SQL monitoring
          • Overview
          • SQL audit
          • Execution plans
      • Cases
    • Logs
      • Overview
      • Log levels
      • Log stability
      • Log control
      • Log metrics
      • View logs
        • Search for the logs of a specific SQL request
        • Query the log of a previous SQL request by using the SQL Trace feature
    • Daily inspection
      • Overview
      • Check cluster parameters
      • Check the host status
      • Check tenant resource usage
      • Check cluster resource usage
      • Check the OBServer node status
      • Check the NTP offset
      • Deadlock detection
      • End-to-end tracing
        • Overview
        • Process
        • Methods
        • Show end-to-end tracing information
    • Performance tuning
      • Overview
      • Identify bottlenecks on the data link
      • Identify bottlenecks within components
        • ODP performance bottlenecks
        • ODP performance analysis
        • OBServer performance bottlenecks
          • Overview
          • Non-optimal plan
            • Non-optimal plan
            • Buffer tables
            • Cardinality
          • Hard parsing
          • Capacity issues
          • Internal wait events
      • SQL tuning
        • SQL tuning system
        • Execution plan optimization
          • Statistical information and row estimation
            • Overview
            • Statistical information
              • Overview
              • Collect statistical information
                • Overview
                • Manually collect statistics
                • Automatic statistics collection
              • Query statistics
              • Manage statistical information
                • Overview
                • Delete and set statistics
                • Import and export statistics
                • Lock statistics
                • Query historical versions of statistics and roll back to a specified version
                • Configure statistics collection strategies
            • Row estimation
              • Overview
              • Row estimation based on the selectivity
              • Row estimation based on the storage layer
            • Use statistical information and row estimation
          • Plan management
            • Plan cache
            • Disadvantages of the plan cache and countermeasures
            • Views related to the plan cache
          • Index selection
            • Overview
            • Reduce row reads
            • Avoid table access by index primary key
            • Avoid sorting
          • Join order and join algorithm
            • Joins
            • Join algorithm
              • Nested loop joins
              • Hash joins
              • Merge joins
              • Common business issues
            • Join types
            • Join order
          • Order and limit optimization
            • Overview
            • SORT assignment and optimization
            • Optimization in ORDER BY + LIMIT scenarios
        • Business logic optimization
          • SQL specifications
          • Schema Specification
        • Locate and analyze slow queries (1)
        • Locate and analyze slow queries (II)
        • Typical scenarios and cases
    • Troubleshooting
      • Overview
      • Bootstrap
      • Storage
        • Minor compaction and major compaction
        • Memory-related errors
        • Migration, replication, and rebuild tasks
      • Election
        • Election
        • Leader switchover exceptions
        • Absence of the leader
      • Transaction
        • Transaction-related errors
        • Transaction rollbacks
        • Long-running transactions
        • Suspended transactions
        • Idle transactions
      • Log synchronization-related errors
      • Physical standby database
        • Log synchronization stuck for the physical standby database
        • Switchover and failover issues
      • Backup and restore
        • Data backup failures
        • Physical restore failures
      • Troubleshoot SQL execution errors
      • Application exception -- error message does not contain OceanBase error code
      • Application exception -- error message contains an OceanBase error code
    • Emergency response
      • Emergency response overview
      • Analysis, diagnosis, and decision-making procedure
      • Common emergency problem handling
        • Hardware issues
          • Node failure
          • Network failure
          • ODP failure
          • Other hardware and network issues
        • Capacity issues
          • Exceptions of SQL queries
          • Node disk I/O high
          • Node network card overload
          • Tenant memory full
          • obproxy thread exhaustion
          • Node clog disk full
          • Node data disk full
          • Tenant request queue backlog
        • Other cluster issues
          • sys tenant or RootService exceptions
          • Insufficiency or leakage of system memory
  • Reference
    • System principles
      • Overall architecture of OceanBase Database
      • Development of OceanBase Database
      • Multi-tenant architecture
        • Overview
        • Compatibility modes
        • Tenants
        • Tenants and resource management
          • Tenant resource management
          • Multi-tenant resource isolation
          • Resource unit balancing
      • Database objects
        • Oracle mode
          • Introduction
            • Overview
            • Database object types
            • Database object storage
            • Dependencies between database objects
          • Tables
            • Overview
            • Data type
              • Overview
              • Character data types
              • Numeric data types
              • Datetime data types
              • ROWID data types
              • LOB data types
              • Format model
                • Overview
                • Number format models
                • Datetime format models
              • Multi-model data types
            • Integrity constraints
            • Table storage
            • Table compression
            • Partitioned table
            • Tables with and without a primary key
            • Temporary tables
          • Indexes
            • About indexes
            • Local and global indexes
            • Unique and non-unique indexes
            • Use indexes
            • Index storage
          • Partitions
            • Overview
            • Partitioning keys
            • Partitioning types
            • Partitioned indexes
          • Views
            • Overview
            • View categorization
            • OceanBase-specific views
            • Oracle-compatible views
            • Data operations in views
            • Data access from views
            • Updatable views
          • Other objects
            • Sequences
            • Synonyms
          • System views
            • Dictionary views
            • Performance views
          • Data integrity
            • Overview
            • Integrity constraint type
              • Overview
              • NOT NULL constraints
              • UNIQUE KEY constraints
              • PRIMARY KEY constraints
              • FOREIGN KEY constraints
              • CHECK constraints
            • Use of integrity constraints
        • MySQL mode
          • Introduction
            • Overview
            • Database object types
            • Database object storage
            • Dependencies between database objects
          • Tables
            • Overview
            • Data type
              • Overview
              • Numeric data types
              • Datetime data types
              • Character data types
              • LOB data types
              • Multi-model data types
            • Integrity constraints
            • Table storage
            • Table compression
            • Partitioned table
            • Tables with and without a primary key
          • Indexes
            • About indexes
            • Local and global indexes
            • Unique and non-unique indexes
            • Spatial indexes
            • Use indexes
            • Index storage
          • Partitions
            • Overview
            • Partitioning keys
            • Partitioning types
            • Partitioned indexes
          • Views
            • Overview
            • View categorization
            • OceanBase-specific views
            • MySQL-compatible views
            • Oracle-compatible views in MySQL tenants
            • Oracle-compatible views in the sys tenant
            • Data operations in views
            • Data access from views
            • Updatable views
          • System views
            • Dictionary views
            • Performance views
          • Data integrity
            • Overview
            • Integrity constraint type
              • Overview
              • NOT NULL constraints
              • UNIQUE KEY constraints
              • PRIMARY KEY constraints
              • FOREIGN KEY constraints
            • Use of integrity constraints
      • Distributed database objects
        • Overview
        • Cluster architecture
        • Data partitions and replicas
          • Overview
          • Log streams
          • Partition replica type
            • Overview
            • Full-featured replica
          • Multi-replica consensus protocols
        • Dynamic scaling
          • Cluster scaling
          • Tenant resource scaling
            • Overview
            • Horizontal scaling of tenant resources
            • Vertical scaling of tenant resources
            • Cross-zone management of tenant resources
      • Data link
        • Overview
        • Database proxy
          • Overview
          • SQL routing
          • Connection management
          • ODP configuration management
          • Logs and monitoring
        • Database connector
          • Overview
          • OBCI
          • OceanBase Connector/J
          • OceanBase Connector/C
      • User interface and query language
        • SQL
          • Introduction
            • Overview
            • SQL data access
            • SQL standards
          • SQL statements
            • Overview
            • DDL statements
            • DML statements
            • DCL statements
          • Execution process of SQL queries
          • Query SQL execution plans
          • Distributed execution plan
            • Perform distributed execution and parallel queries
            • Generate distributed execution plans
            • Run and disable a parallel query
            • Manage distributed execution plans
            • Perform parameter tuning for a parallel query
        • PL
          • PL concepts
            • Oracle mode
              • Subprograms
              • Stored procedures
              • Functions
              • Triggers
              • Packages
            • MySQL mode
              • Subprograms
              • Stored procedures
              • Functions
              • Triggers
          • PL subprogram execution mechanism
        • Client programming languages
      • Transaction management
        • Transaction
          • Overview
          • Transaction structure
          • Statement-level atomicity
          • GTS
          • Transaction control
            • Overview
            • Active transactions
            • Savepoint
            • Transaction control statements
              • MySQL transaction control
              • Oracle transaction control
          • Redo logs
          • Local transactions
          • Distributed transaction
            • Overview
            • Two-phase commit
          • XA transactions
        • Transaction concurrency and consistency
          • Overview
          • Multi-version read consistency
          • Concurrency control
            • Overview
            • Lock mechanism
          • Transaction isolation level
            • Overview
            • Transaction isolation levels in Oracle mode
            • Transaction isolation levels in MySQL mode
          • Weak consistency read
      • Storage architecture
        • Overview
        • Data storage
          • Overview
          • MemTables
          • SSTables
          • Compression and encoding
        • Compaction
          • Overview
          • Minor compaction
          • Major compaction
        • Multi-level caches
        • Query processing
        • Data integrity
          • Detect silent data corruption
      • Data reliability and high availability
        • High availability architecture
          • Overview
          • ODP high availability
          • Leader election in distributed systems
          • Multi-replica log synchronization
          • Paxos protocol
          • Automatic handling of node failures
        • Deployment solutions for disaster recovery
        • Data protection
          • Overview
          • Flashback queries
          • Recycle bin
        • Backup and restore
          • Overview
          • Backup directory structures
          • Backup architecture
          • Restore architecture
      • Database security
        • Overview
        • Authentication
        • Access control
        • Data transmission encryption
        • Data storage encryption
        • Monitoring and alerting
        • Security audit
      • OBServer node architecture
        • Structure of the OBServer node installation directory
        • Configuration files
        • observer thread model
          • Threads
          • Worker threads
          • Background threads
        • Logs
        • Memory management
          • Overview
          • Memory-related parameters
          • Memory-related views
          • Memory usage logs
          • Diagnose memory errors
    • System management
      • Configuration management
        • Overview
        • Set parameters
        • Set variables
      • Storage management
        • Minor compaction management
          • Dump Management Overview
          • Automatically trigger a minor compaction
          • Manually initiate a minor compaction
          • View the details of minor compactions
          • Modify minor compaction parameters
        • Major compaction management
          • Overview
          • Automatically trigger a major compaction
          • Configure scheduled major compactions
          • Adaptive major compaction
          • Manually initiate a major compaction
          • Manually control a major compaction
          • View the major compaction process
          • Modify major compaction parameters
        • Data compression
          • Overview
          • Data encoding and compression
      • Memory management
        • Overview
        • Memory structure
        • Set the maximum memory for an OceanBase database
        • Manage internal system memory
        • Manage internal tenant memory
        • Manage the memory of the plan cache
        • Memleak-based regular memory leak diagnostics mechanism
        • Query memory usage information
        • Common memory issues
      • Process management
        • Overview
        • Multi-tenant threads of OceanBase Database
        • View the thread status
        • Background threads of OceanBase Database
        • FAQ about multi-tenant threads
      • Disk management
        • Configure automatic scale-out of disk space for data files
    • Database object management
      • Overview
      • MySQL mode
        • Create and manage databases
          • Create a database
          • View databases
          • Modify a database
          • Drop a database
        • Create and manage tables
          • Overview
          • Create a table
          • Define an auto-increment column
          • Define column constraints
          • Query tables
          • Modify a table
          • Empty a table
          • Drop a table
          • Lock a table
          • Create and manage external tables
            • Overview
            • Create an external table
            • Manage external files
        • Create and manage partitions
          • Overview
          • Create a partitioned table
          • Modify partitioning rules
          • Add a partition
          • Drop a partition
          • Truncate a partition
          • Partition pruning
          • Query data in specified partitions
          • Create indexes on partitioned tables
            • Overview
            • Local indexes
            • Global indexes
        • Create and manage table groups
          • Overview
          • Create a table group
          • Query information about a table group
          • Add tables to a table group
          • Modify the SHARDING attribute of a table group
          • Manage tables in a table group
          • Drop a table group
        • Create and manage indexes
          • Overview
          • Create an index
          • Query indexes
          • Drop an index
          • System functions supported for function-based indexes
          • System functions not supported for function-based indexes
        • Manage views
        • Create and manage sequences
          • Create a sequence
          • Query sequences
          • Reference a sequence
          • Modify a sequence
          • Drop a sequence
        • Create and manage triggers
          • Overview
          • Create a DML trigger
          • Query trigger information
          • Drop a trigger
        • Create and manage DBLinks
          • Create a DBLink
          • Query a DBLink
          • Use a DBLink to access data in a remote database
          • Drop a DBLink
      • Oracle mode
        • Create and manage tables
          • Overview
          • Create a table
          • Define column constraints
          • Query the definition of a table
          • Modify a table
          • Empty a table
          • Drop a table
          • Lock a table
          • Create and manage external tables
            • Overview
            • Create an external table
            • Manage external files
        • Create and manage partitions
          • Overview
          • Create a partitioned table
          • Modify partitioning rules
          • Rename a partition
          • Add a partition
          • Drop a partition
          • Truncate a partition
          • Partition pruning
          • Query data in specified partitions
          • Create indexes on partitioned tables
            • Overview
            • Local indexes
            • Global indexes
        • Create and manage table groups
          • Overview
          • Create a table group
          • Query information about a table group
          • Add tables to a table group
          • Modify the SHARDING attribute of a table group
          • Manage tables in a table group
          • Drop a table group
        • Create and manage indexes
          • Overview
          • Create an index
          • Query indexes
          • Drop an index
          • System functions supported for function-based indexes
          • System functions not supported for function-based indexes
        • Manage views
        • Manage sequences
        • Manage synonyms
        • Create and manage triggers
          • Overview
          • Create a DML trigger
          • Create an INSTEAD OF trigger
          • Create a composite trigger
          • Modify and drop a trigger
          • Disable or enable a trigger
          • Query trigger information
        • Manage directory objects
        • Create and manage DBLinks
          • Create a DBLink
          • Query existing DBLinks
          • Use a DBLink to access data in a remote database
          • Use a DBLink to modify data in a remote database
          • Drop a DBLink
          • Install and configure OCI
    • Database design specifications and practices
      • Object naming conventions
        • Overview
        • Tenant naming conventions
        • User naming conventions
        • Table naming conventions
        • Field naming conventions
        • Other naming conventions
      • Object structure design specifications
        • Field design
        • Table structure design
        • Design partitioned table schemas
        • Index design
        • Other structural designs
      • Character set specifications
      • Database connection specifications
      • Comments
      • ORM conventions
      • Exception handling
    • SQL reference
      • SQL syntax
        • System tenants
          • Overview
          • ALTER SYSTEM
            • ACTIVATE STANDBY
            • SET LOG_ARCHIVE_DEST
            • SET LOG_ARCHIVE_DEST_STATE
            • ARCHIVELOG
            • NOARCHIVELOG
            • ARBITRATION
            • BOOTSTRAP
            • BACKUP KEY
            • BACKUP
            • BALANCE TASK
            • CANCEL BACKUP
            • CANCEL DELETE BACKUP
            • CANCEL MIGRATE UNIT
            • CHANGE TENANT
            • CANCEL RESTORE
            • CANCEL RECOVER TABLE
            • MAJOR and MINOR
            • MIGRATE UNIT
            • DELETE BACKUP POLICY
            • FLUSH PLAN CACHE
            • JOB
            • SET LOG_RESTORE_SOURCE
            • PARAMETER
            • RECOVER STANDBY
            • RECOVER STANDBY CANCEL
            • REFRESH
            • RESTORE
            • RECOVER TABLE
            • SET DATA_BACKUP_DEST
            • SERVER
            • SWITCHOVER
            • THROTTLE
            • TRANSFER PARTITION
            • WASH MEMORY FRAGMENTATION
            • ZONE
          • ALTER RESOURCE POOL
          • ALTER RESOURCE TENANT
          • ALTER RESOURCE UNIT
          • ALTER TENANT
          • CREATE RESOURCE POOL
          • CREATE RESOURCE UNIT
          • CREATE TENANT
          • CREATE STANDBY TENANT
          • DROP RESOURCE POOL
          • DROP RESOURCE UNIT
          • DROP TENANT
          • SET DECRYPTION
          • SET ENCRYPTION
        • User tenants (MySQL mode)
          • Basic elements
            • Data types
              • Overview
              • Numeric types
                • Overview
                • Integer data types
                • Fixed-point data types
                • Floating-point data types
                • Bit value data type
              • Datetime types
                • Overview
                • DATE, DATETIME, and TIMESTAMP types
                • TIME type
                • YEAR type
              • String types
                • Overview
                • CHAR and VARCHAR
                • BINARY and VARBINARY
              • Large objects and text types
                • Overview
                • BLOB types
                • TEXT types
                • LOB type
              • ENUM type
              • SET type
              • JSON data types
                • Overview
                • Create a JSON value
                • Query and modify JSON values
                • Convert a JSON data type
              • Spatial data types
                • Overview
                • SRS
                • Create a spatial column
                • Create a spatial index
                • Spatial data formats
            • Expressions
              • Overview
              • Expression syntax
              • Convert data types in expression evaluation
            • Character set and collation
              • Overview
              • Character sets
              • Collations
              • Database-level character sets and collations
              • Table-level character sets and collations
              • Column-level character sets and collations
              • Character sets and collations for character expressions
              • Character sets and collations for client connection
            • Literals
              • Overview
              • Strings
              • Numbers
              • Datetime values
              • Bit values
              • Boolean values
              • NULLs
            • Schema object names
            • User-defined variables
            • Comments
          • Operators
            • Overview
            • Operator precedence
            • Arithmetic operators
            • Bitwise operators
            • Comparison operators
            • Logical operators
            • Assignment operators
            • Date and time operators
            • Concatenation operators
            • BINARY operator
            • CASE conditional operator
          • Sequence pseudocolumns
          • Functions
            • Overview
            • Single-row functions
              • Datetime functions
                • ADDDATE
                • CONVERT_TZ
                • CURDATE
                • CURRENT_DATE
                • CURRENT_TIME
                • CURRENT_TIMESTAMP
                • CURTIME
                • DATE
                • DATE_ADD
                • DATE_FORMAT
                • DATE_SUB
                • DATEDIFF
                • DAYOFMONTH
                • DAYOFWEEK
                • DAYOFYEAR
                • EXTRACT
                • FROM_DAYS
                • FROM_UNIXTIME
                • GET_FORMAT
                • HOUR
                • LAST_DAY
                • LOCALTIME
                • LOCALTIMESTAMP
                • MAKEDATE
                • MAKETIME
                • MICROSECOND
                • MINUTE
                • MONTH
                • MONTHNAME
                • NOW
                • PERIOD_ADD
                • PERIOD_DIFF
                • QUARTER
                • SEC_TO_TIME
                • SECOND
                • STR_TO_DATE
                • SUBDATE
                • SUBTIME
                • SYSDATE
                • TIME
                • TIME_FORMAT
                • TIME_TO_SEC
                • TIME_TO_USEC
                • TIMEDIFF
                • TIMESTAMP
                • TIMESTAMPADD
                • TIMESTAMPDIFF
                • TO_DAYS
                • TO_SECONDS
                • UNIX_TIMESTAMP
                • USEC_TO_TIME
                • UTC_DATE
                • UTC_TIME
                • UTC_TIMESTAMP
                • WEEK
                • WEEKDAY
                • WEEKOFYEAR
                • YEARWEEK
                • YEAR
                • ADDTIME
                • DAYNAME
                • DAY
              • String functions
                • ASCII
                • BIN
                • BIT_LENGTH
                • CHAR
                • CHAR_LENGTH
                • CHARACTER_LENGTH
                • CONCAT
                • CONCAT_WS
                • ELT
                • EXPORT_SET
                • FIELD
                • FIND_IN_SET
                • FORMAT
                • HEX
                • INSERT
                • INSTR
                • INT2IP
                • IP2INT
                • LCASE
                • LEFT
                • LENGTH
                • LOCATE
                • LOWER
                • LPAD
                • LTRIM
                • MAKE_SET
                • MID
                • OCT
                • OCTET_LENGTH
                • ORD
                • POSITION
                • QUOTE
                • REGEXP
                • REGEXP_INSTR
                • REGEXP_LIKE
                • REGEXP_REPLACE
                • REGEXP_SUBSTR
                • REPEAT
                • REPLACE
                • REVERSE
                • RIGHT
                • RLIKE
                • RPAD
                • RTRIM
                • SPACE
                • STRCMP
                • SUBSTR
                • SUBSTRING
                • SUBSTRING_INDEX
                • TRIM
                • UCASE
                • UNHEX
                • UPPER
                • WEIGHT_STRING
                • TO_BASE64
                • FROM_BASE64
                • SOUNDEX
              • Conversion functions
                • CAST
                • CONVERT
                • SCN_TO_TIMESTAMP
                • TIMESTAMP_TO_SCN
              • Mathematical functions
                • ABS
                • ACOS
                • ASIN
                • ATAN
                • ATAN2
                • BIT_COUNT
                • CEIL
                • CEILING
                • CONV
                • COS
                • COT
                • CRC32
                • DEGREES
                • EXP
                • FLOOR
                • GENERATOR
                • LN
                • LOG
                • LOG10
                • LOG2
                • MOD
                • NEG
                • NORMAL
                • PI
                • POW
                • POWER
                • RADIANS
                • RAND
                • RANDOM
                • RANDSTR
                • ROUND
                • SIGN
                • SIN
                • SQRT
                • TAN
                • TRUNCATE
                • UNIFORM
                • ZIPF
              • Comparison functions
                • GREATEST
                • INTERVAL
                • ISNULL
                • LEAST
              • Process control functions
                • CASE
                • IF
                • IFNULL
                • NULLIF
                • ORA_DECODE
            • Aggregate functions
              • APPROX_COUNT_DISTINCT
              • AVG
              • BIT_AND
              • BIT_OR
              • BIT_XOR
              • COUNT
              • GROUP_CONCAT
              • GROUPING
              • MAX
              • MIN
              • STD
              • STDDEV
              • STDDEV_POP
              • STDDEV_SAMP
              • SUM
              • VAR_POP
              • VAR_SAMP
              • VARIANCE
            • Analysis functions
              • APPROX_COUNT_DISTINCT
              • AVG
              • BIT_AND
              • BIT_OR
              • BIT_XOR
              • COUNT
              • CUME_DIST
              • DENSE_RANK
              • FIRST_VALUE
              • LAG
              • LAST_VALUE
              • LEAD
              • MAX
              • MIN
              • NTH_VALUE
              • NTILE
              • PERCENT_RANK
              • RANK
              • ROW_NUMBER
              • STD
              • STDDEV
              • STDDEV_POP
              • STDDEV_SAMP
              • SUM
              • VAR_POP
              • VAR_SAMP
              • VARIANCE
            • Encryption functions
              • AES_DECRYPT
              • AES_ENCRYPT
              • COMPRESS
              • DECODE
              • DES_DECRYPT
              • DES_ENCRYPT
              • ENCODE
              • ENCRYPT
              • MD5
              • UNCOMPRESS
              • UNCOMPRESSED_LENGTH
              • RANDOM_BYTES
              • SHA
              • SHA1
              • SHA2
              • VALIDATE_PASSWORD_STRENGTH
            • Information functions
              • BENCHMARK
              • CHARSET
              • COERCIBILITY
              • COLLATION
              • CONNECTION_ID
              • CURRENT_USER
              • DATABASE
              • FOUND_ROWS
              • LAST_INSERT_ID
              • ICU_VERSION
              • ROW_COUNT
              • SCHEMA
              • SESSION_USER
              • SYSTEM_USER
              • USER
              • VERSION
              • OB_VERSION
            • JSON functions
              • Overview
              • Create JSON text functions
                • JSON_ARRAY
                • JSON_OBJECT
                • JSON_QUOTE
              • Search JSON text functions
                • JSON_CONTAINS
                • JSON_CONTAINS_PATH
                • JSON_EXTRACT
                • JSON_KEYS
                • JSON_OVERLAPS
                • JSON_SEARCH
                • JSON_VALUE
                • MEMBER OF
              • Modify JSON text functions
                • JSON_ARRAY_APPEND
                • JSON_APPEND
                • JSON_ARRAY_INSERT
                • JSON_INSERT
                • JSON_MERGE
                • JSON_MERGE_PATCH
                • JSON_MERGE_PRESERVE
                • JSON_REMOVE
                • JSON_REPLACE
                • JSON_SET
                • JSON_UNQUOTE
              • Return JSON text property functions
                • JSON_DEPTH
                • JSON_LENGTH
                • JSON_TYPE
                • JSON_VALID
              • JSON_TABLE
              • JSON utility functions
                • JSON_PRETTY
                • JSON_STORAGE_SIZE
              • JSON aggregate functions
                • JSON_ARRAYAGG
                • JSON_OBJECTAGG
              • JSON schema validation functions
                • JSON_SCHEMA_VALID
                • JSON_SCHEMA_VALIDATION_REPORT
            • XML functions
              • Overview
              • Functions for querying XML data
                • EXTRACTVALUE
              • Functions for modifying XML data
                • UPDATEXML
            • Spatial functions
              • Overview
              • Functions that create geometry values
              • Spatial operation functions
              • Spatial relation functions
              • Geometry property functions
              • Geometry format conversion functions
              • Spatial analysis functions
              • Spatial constructor functions
              • Spatial accessor functions
              • Spatial format conversion functions
              • Geometry processing functions
            • Performance schema functions
              • FORMAT_BYTES
              • FORMAT_PICO_TIME
            • Other functions
              • ANY_VALUE
              • BIN_TO_UUID
              • COALESCE
              • DEFAULT
              • NAME_CONST
              • INET_ATON
              • INET_NTOA
              • INET6_ATON
              • INET6_NTOA
              • IS_IPV4
              • IS_IPV4_COMPAT
              • IS_IPV6
              • IS_UUID
              • NVL
              • UUID_TO_BIN
              • SLEEP
              • UUID
              • UUID_SHORT
              • VALUES
          • Queries and subqueries
            • Overview
            • Subqueries
            • Joins
          • SQL statements
            • General syntax
            • Common table expressions
            • ALTER DATABASE
            • ALTER EXTERNAL TABLE
            • ALTER OUTLINE
            • ALTER SEQUENCE
            • MAJOR and MINOR
            • ALTER TABLE
            • ALTER TABLEGROUP
            • ALTER USER
            • ALTER VIEW
            • ANALYZE
            • CREATE DATABASE LINK
            • CREATE DATABASE
            • CREATE EXTERNAL TABLE
            • CREATE INDEX
            • CREATE OUTLINE
            • CREATE FORMAT OUTLINE
            • DROP RESTORE POINT
            • CREATE SEQUENCE
            • CREATE TABLE
            • CREATE TABLEGROUP
            • CREATE USER
            • CREATE VIEW
            • DEALLOCATE PREPARE
            • DROP DATABASE LINK
            • DELETE
            • DESCRIBE
            • DROP DATABASE
            • DROP INDEX
            • DROP OUTLINE
            • DROP FORMAT OUTLINE
            • DROP TABLE
            • DROP TABLEGROUP
            • DROP SEQUENCE
            • DROP USER
            • DROP VIEW
            • EXECUTE
            • EXPLAIN
            • FLASHBACK
            • GRANT
            • HELP
            • INSERT
            • KILL
            • LOAD DATA
            • LOCK TABLES
            • OPTIMIZE
            • PREPARE
            • PURGE
            • PURGE RECYCLEBIN
            • RENAME USER
            • RENAME TABLE
            • REPLACE
            • REVOKE
            • SAVEPOINT
            • SCHEMA
            • SELECT INTO
            • SELECT
              • SELECT statement
              • JOIN clause
              • OVER clause
              • UNION clause
            • SET
            • SET CHARSET
            • SET NAMES
            • SET PASSWORD
            • SET TRANSACTION
            • SHOW
            • TRANSACTION
            • TRUNCATE TABLE
            • UPDATE
            • USE
            • VALUES
          • DDL feature
            • Overview
            • Online and offline DDL operations
            • Index operations
            • Primary key operations
            • Column operations
            • Generated column operations
            • Foreign key operations
            • Table operations
            • Partition operations
            • Column type change rules
            • Conversion rules for numeric data types
        • User tenants (Oracle mode)
          • Introduction to SQL
          • Pseudo columns
            • Overview
            • Hierarchical query pseudocolumns
            • Sequence pseudocolumns
            • ORA_ROWSCN pseudocolumn
            • ROWNUM pseudocolumn
            • ROWID pseudocolumn
          • Basic elements
            • Built-in data types
              • Overview
              • Character data types
                • Overview
                • CHAR data type
                • NCHAR data type
                • NVARCHAR2 data type
                • VARCHAR2 data type
                • VARCHAR data type
              • Numeric data types
                • Overview
                • NUMBER data type
                • FLOAT data type
                • Floating-point numbers
                • Precedence of numeric data types
              • Datetime and interval data types
                • Overview
                • DATE data type
                • TIMESTAMP data type
                • TIMESTAMP WITH TIME ZONE data type
                • TIMESTAMP WITH LOCAL TIME ZONE data type
                • INTERVAL YEAR TO MONTH data type
                • INTERVAL DAY TO SECOND data type
                • Calculation of dates, timestamps, and intervals
              • RAW data type
              • Large object data types
                • Overview
                • BLOB data type
                • CLOB data type
              • Rowid data types
              • User-defined data types
              • Any types
              • JSON data types
                • Overview
                • Create JSON columns
                • Query JSON data
                • Conversion rules for JSON data types
              • XML data types
                • Overview
                • XML data definition
                • Create an XMLType column
                • Query XMLType data
                • Convert XMLType data
              • Spatial data types
                • Overview
                • Create a spatial data column
                • SDO_GEOMETRY attribute access
            • Data type comparison rules
              • Overview
              • Numeric value comparison rules
              • Date value comparison rules
              • Character value comparison rules
              • Data type precedence
              • Data type conversion rules
              • Security considerations for data conversion
            • Literals
              • Overview
              • Text literals
              • Numeric literals
              • Datetime literals
                • Date literals
                • Timestamp literals
              • Interval literals
            • Format model
              • Overview
              • Number format models
              • Datetime format models
              • RR datetime format element
              • String-to-date conversion rules
            • NULL value
              • Overview
              • NULLs in SQL functions
              • NULLs in comparison conditions
              • NULLs in conditional expressions
            • Annotations
              • Overview
              • Comments within SQL statements
              • Comments on schema and non-schema objects
              • Hints
                • Overview
                • Hint list
                  • Hints related to access path
                  • Hints related to join orders
                  • Hints related to joins
                  • Hints related to parallel execution
                  • Hints related to query strategy
                  • Hints related to query conversion
                  • Other hints
            • Database objects
              • Schema objects
              • Non-schema objects
            • Database naming conventions
              • Overview
              • Suggestions on schema object names
            • Database object reference methods
              • Overview
              • Reference schema objects
              • Reference objects in a remote database
                • Create a DBLink
                • Reference a DBLink
              • Reference partitioned tables and indexes
              • Reference an attribute or method of an object type
            • Character sets and collations
          • Operators
            • Overview
            • Operator precedence
            • Arithmetic operators
            • Concatenation operator
            • Hierarchical query operators
            • Set operators
            • COLLATE operator
          • Functions
            • Overview
            • Single-row functions
              • Numeric functions
                • ABS
                • ACOS
                • ASIN
                • ATAN
                • ATAN2
                • BITAND
                • CEIL
                • COS
                • COSH
                • EXP
                • FLOOR
                • GENERATOR
                • LN
                • LOG
                • MOD
                • NANVL
                • NORMAL
                • POWER
                • REMAINDER
                • ROUND
                • RANDOM
                • RANDSTR
                • SIGN
                • SIN
                • SINH
                • SQRT
                • TAN
                • TANH
                • TRUNC
                • UNIFORM
                • WIDTH_BUCKET
                • ZIPF
              • String functions that return a string
                • CHR
                • CONCAT
                • INITCAP
                • LOWER
                • LPAD
                • LTRIM
                • NLS_LOWER
                • NLSSORT
                • NLS_UPPER
                • REGEXP_REPLACE
                • REGEXP_SUBSTR
                • REPLACE
                • RPAD
                • RTRIM
                • SUBSTR
                • TRANSLATE
                • TRANSLATE ... USING
                • TRIM
                • UPPER
              • String functions that return numbers
                • ASCII
                • INSTR
                • LENGTH
                • REGEXP_COUNT
                • REGEXP_INSTR
              • Datetime functions
                • ADD_MONTHS
                • CURRENT_DATE
                • CURRENT_TIMESTAMP
                • DBTIMEZONE
                • EXTRACT(datetime)
                • FROM_TZ
                • LAST_DAY
                • LOCALTIMESTAMP
                • MONTHS_BETWEEN
                • NEXT_DAY
                • NUMTODSINTERVAL
                • NUMTOYMINTERVAL
                • ROUND(date)
                • SESSIONTIMEZONE
                • SYS_EXTRACT_UTC
                • SYSDATE
                • SYSTIMESTAMP
                • TO_CHAR(datetime)
                • TO_DSINTERVAL
                • TO_TIMESTAMP
                • TO_TIMESTAMP_TZ
                • TO_YMINTERVAL
                • TRUNC(date)
                • TZ_OFFSET
              • Generic comparison functions
                • GREATEST
                • LEAST
              • Conversion functions
                • ASCIISTR
                • CAST
                • CHARTOROWID
                • CONVERT
                • HEXTORAW
                • NUMTODSINTERVAL
                • NUMTOYMINTERVAL
                • RAWTOHEX
                • ROWIDTOCHAR
                • ROWIDTONCHAR
                • SCN_TO_TIMESTAMP
                • TIMESTAMP_TO_SCN
                • TO_BINARY_DOUBLE
                • TO_BINARY_FLOAT
                • TO_BLOB
                • TO_CHAR(character)
                • TO_CHAR(datetime)
                • TO_CHAR(number)
                • TO_CLOB
                • TO_DATE
                • TO_DSINTERVAL
                • TO_MULTI_BYTE
                • TO_NUMBER
                • TO_NCHAR(character)
                • TO_NCHAR(datetime)
                • TO_NCHAR(number)
                • TO_SINGLE_BYTE
                • TO_TIMESTAMP
                • TO_TIMESTAMP_TZ
                • TO_YMINTERVAL
                • UNISTR
              • Encoding and decoding functions
                • DECODE
                • DUMP
                • ORA_HASH
                • VSIZE
              • Null value related functions
                • COALESCE
                • LNNVL
                • NANVL
                • NULLIF
                • NVL
                • NVL2
              • Environment and identifier functions
                • SYS_CONTEXT
                • SYS_GUID
                • UID
                • USER
                • USERENV
                • OB_VERSION
              • Hierarchical functions
                • SYS_CONNECT_BY_PATH
              • JSON functions
                • Overview
                • Create JSON text functions
                  • JSON_ARRAY
                  • JSON_OBJECT
                  • JSON_ARRAYAGG
                  • JSON_OBJECTAGG
                • Query JSON text functions
                  • JSON_VALUE
                  • JSON_QUERY
                  • JSON_EXISTS
                  • JSON_TABLE
                • Validate JSON text functions
                  • JSON_EQUAL
                • Modify JSON text functions
                  • JSON_MERGEPATCH
              • XML functions
                • Overview
                • Construct XMLType data functions
                  • XMLAGG
                  • XMLATTRIBUTES
                  • XMLELEMENT
                  • XMLPARSE
                • Query XMLType data functions
                  • EXTRACT
                  • EXTRACTVALUE
                  • XMLSERIALIZE
                  • XMLCAST
                  • XMLTABLE
                  • XMLSEQUENCE
                • Modify XMLType data functions
                  • UPDATEXML
                  • INSERTCHILDXML
                  • DELETEXML
              • Spatial-functions
                • Overview
                • SDO_GEOMETRY constructor functions
                • SDO_GEOMETRY query functions
                • SDO_GEOMETRY format conversion functions
            • Aggregate functions
              • APPROX_COUNT_DISTINCT
              • AVG
              • CORR
              • COUNT
              • COVAR_POP
              • COVAR_SAMP
              • CUME_DIST
              • DENSE_RANK
              • GROUPING
              • KEEP
              • LISTAGG
              • MAX
              • MEDIAN
              • MIN
              • PERCENT_RANK
              • PERCENTILE_CONT
              • PERCENTILE_DISC
              • RANK
              • REGR_(Linear Regression)
              • ROLLUP
              • STDDEV
              • STDDEV_POP
              • STDDEV_SAMP
              • SUM
              • VAR_POP
              • VAR_SAMP
              • VARIANCE
              • WMSYS.WM_CONCAT/WM_CONCAT
            • Analysis functions
              • Analytic functions
              • AVG
              • CORR
              • COUNT
              • COVAR_POP
              • COVAR_SAMP
              • CUME_DIST
              • DENSE_RANK
              • FIRST_VALUE
              • KEEP
              • LAG
              • LAST_VALUE
              • LEAD
              • LISTAGG
              • MAX
              • MEDIAN
              • MIN
              • NTILE
              • NTH_VALUE
              • PERCENT_RANK
              • PERCENTILE_CONT
              • PERCENTILE_DISC
              • RANK
              • RATIO_TO_REPORT
              • REGR_(Linear Regression)
              • ROW_NUMBER
              • STDDEV
              • STDDEV_POP
              • STDDEV_SAMP
              • SUM
              • VAR_POP
              • VAR_SAMP
              • VARIANCE
              • WMSYS.WM_CONCAT/WM_CONCAT
          • Expressions
            • Overview
            • Simple expressions
            • Compound expressions
            • Case expressions
            • Column expressions
            • CURSOR expressions
            • Datetime expressions
            • Function expressions
            • Interval expressions
            • Scalar subquery expressions
            • Type constructor expressions
            • Expression list
          • Conditions
            • Overview
            • Condition precedence
            • Comparison conditions
            • Floating-point conditions
            • Logical conditions
            • Pattern-matching conditions
            • NULL conditions
            • Compound conditions
            • BETWEEN condition
            • EXISTS condition
            • IN condition
          • Queries and subqueries
            • Overview
            • Simple query
            • Hierarchical query
            • Compound query
            • Join query
            • Subquery
            • Lateral derived tables
            • DUAL table query
          • SQL statements
            • DDL
              • ALTER EXTERNAL TABLE
              • ALTER INDEX
              • ALTER KEYSTORE
              • ALTER OUTLINE
              • ALTER PROFILE
              • ALTER ROLE
              • ALTER SEQUENCE
              • ALTER SESSION
              • ALTER SYSTEM FLUSH PLAN CACHE
              • ALTER SYSTEM PARAMETER
              • ALTER TABLE
              • ALTER TABLEGROUP
              • ALTER USER
              • COMMENT
              • CREATE CONTEXT
              • CREATE DIRECTORY
              • CREATE DATABASE LINK
              • CREATE EXTERNAL TABLE
              • CREATE INDEX
              • CREATE KEYSTORE
              • CREATE OUTLINE
              • CREATE PROFILE
              • CREATE FORMAT OUTLINE
              • CREATE ROLE
              • CREATE SEQUENCE
              • CREATE SYNONYM
              • CREATE TABLE
              • CREATE TABLEGROUP
              • CREATE TABLESPACE
              • CREATE USER
              • CREATE VIEW
              • DROP CONTEXT
              • DROP DATABASE LINK
              • DROP DIRECTORY
              • DROP INDEX
              • DROP OUTLINE
              • DROP PROFILE
              • DROP FORMAT OUTLINE
              • DROP ROLE
              • DROP SEQUENCE
              • DROP SYNONYM
              • DROP TABLE
              • # Purpose
              • DROP TABLESPACE
              • DROP USER
              • DROP VIEW
              • RENAME
              • TRUNCATE TABLE
              • MAJOR and MINOR
            • DML
              • DELETE
              • INSERT
              • MERGE
              • PURGE
              • EXPLAIN
              • SELECT
                • SIMPLE SELECT
                • Set-based SELECT
                • WITH clause
              • UPDATE
            • DCL
              • ANALYZE
              • ALTER SYSTEM KILL SESSION
              • AUDIT
              • COMMIT
              • FLASHBACK TABLE BEFORE DROP
              • GRANT
              • KILL
              • LOAD DATA
              • LOCK TABLE
              • REVOKE
              • ROLLBACK
              • SAVEPOINT
              • SET NAMES
              • SET PASSWORD
              • SET ROLE
              • SET VARIABLE
              • SHOW
              • SHRINK
              • TRANSACTION
          • DDL feature
            • Overview
            • Online and offline DDL operations
            • Index operations
            • Primary key operations
            • Column operations
            • Generated column operations
            • Foreign key operations
            • Table operations
            • Partition operations
            • Column type change rules
            • Conversion rules for numeric data types
      • SQL specifications and practices
        • Limitations on writing SQL statements
        • SQL writing specifications
          • SELECT statements
          • DML statements
          • Multi-table join specifications
          • Table scan
          • Transactions
          • Cache
          • Hint
          • Related specifications
        • SQL statement examples
          • Implicit data type conversion
          • Join tables
          • Weak consistency read
          • Pagination queries
      • PL reference
        • What is PL
          • Overview
          • Main features of PL
          • PL architecture
        • PL reference (MySQL mode)
          • Syntax of PL stored programs
          • PL stored procedures
            • Overview
            • Variables in stored programs
            • Stored procedures
            • Stored objects and privilege management
            • Stored functions
            • Trigger
            • Limitations on stored programs
          • PL cursors
            • Overview
            • Cursor execution process
            • Limitations on server cursors
          • PL conditional control statements
            • CASE
            • IF
            • ITERATE
            • LEAVE
            • LOOP
            • REPEAT
            • RETURN
            • WHILE
          • PL data manipulation statements
            • CALL
            • DO
          • PL data definition statements
            • ALTER FUNCTION
            • ALTER PROCEDURE
            • CREATE FUNCTION
            • CREATE PROCEDURE
            • CREATE TRIGGER
            • DROP FUNCTION
            • DROP PROCEDURE
            • DROP TRIGGER
          • PL database management statements
            • SHOW CREATE FUNCTION
            • SHOW CREATE PROCEDURE
            • SHOW CREATE TRIGGER
            • SHOW FUNCTION STATUS
            • SHOW PROCEDURE STATUS
            • SHOW TRIGGERS
          • PL related dictionary views
            • INFORMATION_SCHEMA PARAMETERS
            • INFORMATION_SCHEMA ROUTINES
            • INFORMATION_SCHEMA TRIGGERS
          • PL exception handling
            • Overview
            • DECLARE ... CONDITION
            • DECLARE ... HANDLER
            • GET DIAGNOSTICS
            • RESIGNAL
            • SIGNAL
            • Effective scope of an exception handler
            • Diagnostics area
            • Exception handling and OUT/INOUT parameters
            • Limitations on exception handling
          • PL system packages
            • Overview
            • DBMS_RESOURCE_MANAGER
              • Overview
              • CREATE_CONSUMER_GROUP
              • CREATE_PLAN
              • CREATE_PLAN_DIRECTIVE
              • DELETE_CONSUMER_GROUP
              • DELETE_PLAN
              • DELETE_PLAN_DIRECTIVE
              • SET_CONSUMER_GROUP_MAPPING
              • UPDATE_PLAN_DIRECTIVE
            • DBMS_STATS
              • Overview
              • ALTER_STATS_HISTORY_RETENTION
              • CREATE_STAT_TABLE
              • DELETE_COLUMN_STATS
              • DELETE_INDEX_STATS
              • DELETE_TABLE_STATS
              • DELETE_SCHEMA_STATS
              • DELETE_SCHEMA_PREFS
              • DELETE_TABLE_PREFS
              • DROP_STAT_TABLE
              • EXPORT_COLUMN_STATS
              • EXPORT_INDEX_STATS
              • EXPORT_TABLE_STATS
              • EXPORT_SCHEMA_STATS
              • FLUSH_DATABASE_MONITORING_INFO
              • GATHER_INDEX_STATS
              • GATHER_TABLE_STATS
              • GATHER_SCHEMA_STATS
              • GET_STATS_HISTORY_AVAILABILITY
              • GET_STATS_HISTORY_RETENTION
              • GET_PARAM
              • GET_PREFS
              • IMPORT_INDEX_STATS
              • IMPORT_COLUMN_STATS
              • IMPORT_TABLE_STATS
              • IMPORT_SCHEMA_STATS
              • LOCK_PARTITION_STATS
              • LOCK_SCHEMA_STATS
              • LOCK_TABLE_STATS
              • RESTORE_TABLE_STATS
              • RESTORE_SCHEMA_STATS
              • RESET_GLOBAL_PREF_DEFAULTS
              • RESET_PARAM_DEFAULTS
              • PURGE_STATS
              • SET_COLUMN_STATS
              • SET_INDEX_STATS
              • SET_TABLE_STATS
              • SET_GLOBAL_PREFS
              • SET_PARAM
              • SET_SCHEMA_PREFS
              • SET_TABLE_PREFS
              • UNLOCK_PARTITION_STATS
              • UNLOCK_SCHEMA_STATS
              • UNLOCK_TABLE_STATS
            • DBMS_UDR
              • Overview
              • CREATE_RULE
              • DISABLE_RULE
              • ENABLE_RULE
              • REMOVE_RULE
            • DBMS_WORKLOAD_REPOSITORY
              • Overview
              • ASH_REPORT
              • CREATE_SNAPSHOT
              • DROP_SNAPSHOT_RANGE
              • MODIFY_SNAPSHOT_SETTINGS
            • DBMS_XPLAN
              • Overview
              • DISPLAY_ACTIVE_SESSION_PLAN
              • DISPLAY_CURSOR
              • DISPLAY
              • DISABLE_OPT_TRACE
              • DISPLAY_SQL_PLAN_BASELINE
              • ENABLE_OPT_TRACE
              • SET_OPT_TRACE_PARAMETER
          • Reserved and non-reserved PL keywords
        • PL reference (Oracle mode)
          • PL language basics
            • Character sets
            • Lexical units
            • Declare
            • Reference identifiers
            • Scope and visibility of identifiers
            • Assign values
            • Expressions
            • PL blocks
            • Subprograms
            • Error-reporting functions
          • PL data types
            • Overview
            • SQL data types
            • LOB data types
            • BOOLEAN type
            • User-defined subtypes
            • PLS_INTEGER and BINARY_INTEGER
            • Arrays
            • PL JSON data types
          • PL process control
            • Overview
            • Conditional control
            • Loop control
            • Sequential control
          • PL collections and records
            • Overview
            • Collections
            • Associative arrays
            • Varrays
            • Nested tables
            • Collection constructor function
            • Collection methods
              • Overview
              • DELETE method
              • TRIM method
              • EXTEND method
              • EXISTS method
              • FIRST and LAST methods
              • COUNT method
              • LIMIT method
              • PRIOR and NEXT methods
            • Records
            • Insert records into a table and update a table by using records
            • Create and call a subprogram with record type parameters
          • PL static SQL
            • Overview
            • Cursors
              • Overview
              • Cursor attributes
              • Implicit cursors
              • Explicit cursors
              • Cursor variables
              • Traverse cursor data by using the FOR loop
              • Modify and drop a cursor
            • Transaction processing and control
            • Autonomous transactions
              • Overview
              • Control autonomous transactions
              • Autonomous triggers
              • Call autonomous functions from SQL statements
          • PL dynamic SQL
            • Overview
            • Execute dynamic SQL statements
            • DBMS_SQL system package
          • PL stored procedures and functions
            • Overview
            • Create a stored procedure
            • Create a function
            • Manage stored procedures and functions
            • Privilege control
            • Pipeline functions
              • Overview
              • Create a pipelined table function
              • Application
            • User-defined functions
              • Overview
              • Interface for user-defined aggregate functions
              • Create user-defined aggregate functions
              • Use user-defined aggregate functions
            • Collection of stored procedure information and its impact on parallel execution of SQL statements
            • PL DBLinks
          • PL triggers
            • Overview
            • Create a DML trigger
            • Modify and drop a trigger
            • Disable or enable a trigger
            • Query trigger information
            • INSTEAD OF DML trigger
            • Compound DML trigger
          • PL packages
            • Overview
            • Create a program package
            • Overloaded programs in a package
            • Manage program packages
            • Definition of the PL environment by the STANDARD package
          • PL exception handling
            • Overview
            • Compile-Time alerts
            • Exception types
            • Exception handling processes
          • DDL operations on stored PL units
            • Overview
            • ALTER FUNCTION
            • ALTER PACKAGE
            • ALTER PROCEDURE
            • ALTER TRIGGER
            • ALTER TYPE
            • CREATE FUNCTION
            • CREATE PACKAGE
            • CREATE PACKAGE BODY
            • CREATE PROCEDURE
            • CREATE TRIGGER
            • CREATE TYPE
            • CREATE TYPE BODY
            • DROP FUNCTION
            • DROP PACKAGE
            • DROP PROCEDURE
            • DROP TRIGGER
            • DROP TYPE
            • DROP TYPE BODY
          • PL label security package
            • Overview
            • SA_SYSDBA policy management package
              • Overview
              • SA_SYSDBA.ALTER_POLICY
              • SA_SYSDBA.CREATE_POLICY
              • SA_SYSDBA.DROP_POLICY
            • SA_COMPONENTS label component package
              • Overview
              • SA_COMPONENTS.ALTER_LEVEL
              • SA_COMPONENTS.CREATE_LEVEL
              • SA_COMPONENTS.DROP_LEVEL
            • SA_LABEL_ADMIN label management package
              • Overview
              • SA_LABEL_ADMIN.ALTER_LABEL
              • SA_LABEL_ADMIN.CREATE_LABEL
              • SA_LABEL_ADMIN.DROP_LABEL
            • SA_POLICY_ADMIN policy management package
              • Overview
              • SA_POLICY_ADMIN.APPLY_TABLE_POLICY
              • SA_POLICY_ADMIN.DISABLE_TABLE_POLICY
              • SA_POLICY_ADMIN.ENABLE_TABLE_POLICY
              • SA_POLICY_ADMIN.REMOVE_TABLE_POLICY
            • SA_USER_ADMIN user label management package
              • Overview
              • SA_USER_ADMIN.SET_LEVELS
            • SA_SESSION session management package
              • Overview
              • SA_SESSION.LABEL
              • SA_SESSION.RESTORE_DEFAULT_LABELS
              • SA_SESSION.ROW_LABEL
              • SA_SESSION.SET_LABEL
              • SA_SESSION.SET_ROW_LABEL
          • PL system package (Oracle mode)
            • Overview
            • DBMS_APPLICATION_INFO
              • Overview
              • READ_CLIENT_INFO
              • READ_MODULE
              • SET_ACTION
              • SET_CLIENT_INFO
              • SET_MODULE
            • DBMS_AUDIT_MGMT
              • Overview
              • CLEAN_AUDIT_TRAIL
              • CREATE_PURGE_JOB
              • DROP_PURGE_JOB
              • SET_LAST_ARCHIVE_TIMESTAMP
              • SET_PURGE_JOB_STATUS
            • DBMS_CRYPTO
              • Overview
              • ENCRYPT
              • DECRYPT
              • HASH
            • DBMS_DEBUG
              • Overview
              • ATTACH_SESSION
              • CONTINUE
              • DEBUG_ON
              • DEBUG_OFF
              • DETACH_SESSION
              • DELETE_BREAKPOINT
              • DISABLE_BREAKPOINT
              • ENABLE_BREAKPOINT
              • GET_VALUE
              • GET_VALUES
              • GET_RUNTIME_INFO
              • GET_TIMEOUT_BEHAVIOUR
              • INITIALIZE
              • PROBE_VERSION
              • PRINT_BACKTRACE
              • SET_TIMEOUT
              • SET_TIMEOUT_BEHAVIOUR
              • SET_BREAKPOINT
              • SHOW_BREAKPOINTS
            • DBMS_DESCRIBE
              • Overview
              • DESCRIBE_PROCEDURE
            • DBMS_JOB
              • Overview
              • BROKEN
              • CHANGE
              • ZONE
              • INTERVAL
              • NEXT_DATE
              • REMOVE
              • RUN
              • SUBMIT
              • USER_EXPORT
              • WHAT
            • DBMS_LOB
              • Overview
              • APPEND
              • CLOSE
              • COPY
              • CREATETEMPORARY
              • ERASE
              • FREETEMPORARY
              • GETLENGTH
              • ISOPEN
              • INSTR
              • ISTEMPORARY
              • OPEN
              • READ
              • SUBSTR
              • TRIM
              • WRITE
              • WRITEAPPEND
            • DBMS_LOCK
              • Overview
              • ALLOCATE_UNIQUE
              • ALLOCATE_UNIQUE_AUTONOMOUS
              • REQUEST
              • SLEEP
            • DBMS_METADATA
              • Overview
              • GET_DDL
            • DBMS_MONITOR
              • Overview
            • DBMS_OUTPUT
              • Overview
              • DISABLE
              • ENABLE
              • GET_LINE
              • GET_LINES
              • NEW_LINE
              • PUT
              • PUT_LINE
            • DBMS_PLAN_CACHE
              • Overview
              • PURGE
            • DBMS_RANDOM
              • Overview
              • INITIALIZE
              • NORMAL
              • RANDOM
              • SEED
              • STRING
              • TERMINATE
              • VALUE
            • DBMS_RESOURCE_MANAGER
              • Overview
              • CREATE_CONSUMER_GROUP
              • CREATE_PLAN
              • CREATE_PLAN_DIRECTIVE
              • DELETE_CONSUMER_GROUP
              • DELETE_PLAN
              • DELETE_PLAN_DIRECTIVE
              • SET_CONSUMER_GROUP_MAPPING
              • UPDATE_PLAN_DIRECTIVE
            • DBMS_SCHEDULER
              • Overview
              • CREATE_JOB
              • CREATE_PROGRAM
              • DEFINE_PROGRAM_ARGUMENT
              • DISABLE
              • DROP_JOB
              • DROP_PROGRAM
              • ENABLE
              • GENERATE_JOB_NAME
              • RUN_JOB
              • SET_ATTRIBUTE
              • SET_JOB_ARGUMENT_VALUE
            • DBMS_SESSION
              • Overview
              • CLEAR_ALL_CONTEXT
              • CLEAR_CONTEXT
              • CLEAR_IDENTIFIER
              • RESET_PACKAGE
              • SET_CONTEXT
              • SET_IDENTIFIER
            • DBMS_SQL
              • Overview
              • BIND_VARIABLE
              • CLOSE_CURSOR
              • COLUMN_VALUE
              • DEFINE_COLUMN
              • DEFINE_ARRAY
              • DESCRIBE_COLUMNS
              • EXECUTE
              • EXECUTE_AND_FETCH
              • FETCH_ROWS
              • IS_OPEN
              • LAST_ERROR_POSITION
              • OPEN_CURSOR
              • PARSE
            • DBMS_STATS
              • Overview
              • ALTER_STATS_HISTORY_RETENTION
              • CREATE_STAT_TABLE
              • DELETE_COLUMN_STATS
              • DELETE_INDEX_STATS
              • DELETE_TABLE_STATS
              • DELETE_SCHEMA_STATS
              • DELETE_SCHEMA_PREFS
              • DELETE_TABLE_PREFS
              • DROP_STAT_TABLE
              • EXPORT_COLUMN_STATS
              • EXPORT_INDEX_STATS
              • EXPORT_TABLE_STATS
              • EXPORT_SCHEMA_STATS
              • FLUSH_DATABASE_MONITORING_INFO
              • GATHER_INDEX_STATS
              • GATHER_TABLE_STATS
              • GATHER_SCHEMA_STATS
              • GET_STATS_HISTORY_AVAILABILITY
              • GET_STATS_HISTORY_RETENTION
              • GET_PARAM
              • GET_PREFS
              • IMPORT_INDEX_STATS
              • IMPORT_COLUMN_STATS
              • IMPORT_TABLE_STATS
              • IMPORT_SCHEMA_STATS
              • LOCK_PARTITION_STATS
              • LOCK_SCHEMA_STATS
              • LOCK_TABLE_STATS
              • RESTORE_TABLE_STATS
              • RESTORE_SCHEMA_STATS
              • RESET_GLOBAL_PREF_DEFAULTS
              • RESET_PARAM_DEFAULTS
              • PURGE_STATS
              • SET_COLUMN_STATS
              • SET_INDEX_STATS
              • SET_TABLE_STATS
              • SET_GLOBAL_PREFS
              • SET_PARAM
              • SET_SCHEMA_PREFS
              • SET_TABLE_PREFS
              • UNLOCK_PARTITION_STATS
              • UNLOCK_SCHEMA_STATS
              • UNLOCK_TABLE_STATS
              • COPY_TABLE_STATS
            • DBMS_UDR
              • Overview
              • CREATE_RULE
              • DISABLE_RULE
              • ENABLE_RULE
              • REMOVE_RULE
            • DBMS_UTILITY
              • Overview
              • ACTIVE_INSTANCES
              • CURRENT_INSTANCE
              • DB_VERSION
              • FORMAT_CALL_STACK
              • FORMAT_ERROR_BACKTRACE
              • FORMAT_ERROR_STACK
              • GET_ENDIANNESS
              • GET_HASH_VALUE
              • GET_PARAMETER_VALUE
              • GET_SQL_HASH
              • GET_TIME
              • IS_BIT_SET
              • IS_CLUSTER_DATABASE
              • NAME_RESOLVE
              • NAME_TOKENIZE
              • OLD_CURRENT_SCHEMA
              • OLD_CURRENT_USER
              • PORT_STRING
              • TABLE_TO_COMMA
            • DBMS_WORKLOAD_REPOSITORY
              • Overview
              • ASH_REPORT
            • DBMS_XA
              • Overview
              • DBMS_XA constants
              • DBMS_XA_XID object type
              • DIST_TXN_SYNC
              • XA_COMMIT
              • XA_END
              • XA_FORGET
              • XA_GETLASTOER
              • XA_PREPARE
              • XA_RECOVER
              • XA_ROLLBACK
              • XA_SETTIMEOUT
              • XA_START
            • DBMS_XMLGEN
              • Overview
              • CONVERT
            • DBMS_XPLAN
              • Overview
              • DISPLAY_ACTIVE_SESSION_PLAN
              • DISPLAY_CURSOR
              • DISPLAY
              • DISABLE_OPT_TRACE
              • DISPLAY_SQL_PLAN_BASELINE
              • ENABLE_OPT_TRACE
              • SET_OPT_TRACE_PARAMETER
            • ODCIConst
              • Overview
              • ODCIArgDesc.ArgType
              • ODCIEnv.CallProperty
              • ODCIEnv.Envflags
              • ODCIIndexAlter
              • ODCIIndexAlter parameter alter_option
              • ODCIIndexInfo.IndexInfoFlags
              • ODCIIndexInfo.IndexParaDegree
              • ODCIPredInfo.Flags
              • ODCIQueryInfo.Flags
              • ODCIStatsOptions.Flags
              • ODCIStatsOptions.Options
              • Return Status
              • ScnFlg
            • UTL_ENCODE
              • Overview
              • BASE64_DECODE
              • BASE64_ENCODE
            • UTL_FILE
              • Overview
              • FCLOSE
              • FFLUSH
              • FOPEN
              • FGETPOS
              • FREMOVE
              • FRENAME
              • FSEEK
              • NEW_LINE
              • GET_LINE
              • PUT
              • PUT_LINE
            • UTL_I18N
              • Overview
              • RAW_TO_CHAR
              • STRING_TO_RAW
            • UTL_RAW
              • Overview
              • BIT_AND
              • BIT_COMPLEMENT
              • BIT_OR
              • BIT_XOR
              • CAST_FROM_BINARY_DOUBLE
              • CAST_FROM_BINARY_FLOAT
              • CAST_FROM_BINARY_INTEGER
              • CAST_FROM_NUMBER
              • CAST_TO_BINARY_DOUBLE
              • CAST_TO_BINARY_FLOAT
              • CAST_TO_BINARY_INTEGER
              • CAST_TO_NUMBER
              • CAST_TO_RAW
              • CAST_TO_VARCHAR2
              • COMPARE
              • CONCAT
              • COPIES
              • LENGTH
              • REVERSE
              • SUBSTR
            • ANYDATA TYPE
              • Overview
              • BEGINCREATE static procedure
              • ENDCREATE member procedure
              • GET* member functions
              • GETTYPE member function
              • GETTYPENAME member function
              • PIECEWISE member procedure
              • SET* member procedures
            • XMLType
              • Overview
              • CREATEXML
              • GETCLOBVAL
              • GETSTRINGVAL
              • TRANSFORM
              • XMLTYPE
          • Reserved PL keywords
      • Reserved keywords (MySQL mode)
      • Reserved keywords (Oracle mode)
    • Multi-model API
      • TableAPI
        • Implementation
          • Implementation of TableAPI
          • Differences between replace and insert_or_update
          • TableAPI data models
        • Use the TableAPI client
          • Introduction to the client and instructions
          • Set client parameters
          • Use the TableAPI client
        • Use the TableAPI Go client
          • Create a Go client instance
          • Overview of the Go client
          • Individual API operations
          • Batch operations
          • About queries
          • Aggregation API
          • Filters
        • FAQ
      • HBaseAPI
        • Introduction to the HBaseAPI solution
        • HBaseAPI storage model
        • Usage instructions of the HBaseAPI client
      • Deletion of expired data
      • RPC message compression
    • System views
      • Overview
      • Overview of system views
      • Changes in views in OceanBase Database V3.x and V4.x
      • SYS tenant views
        • Dictionary views
          • information_schema.CHARACTER_SETS
          • oceanbase.DBA_OB_SERVER_JOBS
          • oceanbase.DBA_OB_SERVERS
          • oceanbase.DBA_OB_TABLEGROUP_PARTITIONS
          • oceanbase.DBA_OB_TABLEGROUP_SUBPARTITIONS
          • oceanbase.DBA_OB_TABLEGROUP_TABLES
          • oceanbase.DBA_OB_TABLEGROUPS
          • oceanbase.DBA_OB_TABLET_REPLICAS
          • oceanbase.DBA_OB_TABLET_TO_LS
          • oceanbase.DBA_OB_TENANT_JOBS
          • oceanbase.DBA_OB_TENANTS
          • oceanbase.DBA_OB_UNIT_JOBS
          • oceanbase.DBA_OB_UNIT_CONFIGS
          • oceanbase.DBA_OB_UNITS
          • oceanbase.DBA_OB_ZONE_MAJOR_COMPACTION
          • oceanbase.DBA_OB_ZONES
          • oceanbase.DBA_OBJECTS
          • oceanbase.DBA_PART_INDEXES
          • oceanbase.DBA_PART_KEY_COLUMNS
          • oceanbase.DBA_PART_TABLES
          • oceanbase.DBA_OB_SEQUENCE_OBJECTS
          • oceanbase.DBA_SUBPART_KEY_COLUMNS
          • oceanbase.DBA_SUBPARTITION_TEMPLATES
          • oceanbase.DBA_TAB_PARTITIONS
          • oceanbase.DBA_TAB_SUBPARTITIONS
          • oceanbase.CDB_IND_COLUMNS
          • oceanbase.CDB_IND_PARTITIONS
          • oceanbase.CDB_IND_SUBPARTITIONS
          • oceanbase.CDB_INDEXES
          • oceanbase.DBA_IND_PARTITIONS
          • oceanbase.DBA_IND_SUBPARTITIONS
          • oceanbase.DBA_OB_DATABASES
          • oceanbase.DBA_OB_LS_LOCATIONS
          • oceanbase.DBA_OB_MAJOR_COMPACTION
          • oceanbase.DBA_OB_RESOURCE_POOLS
          • oceanbase.DBA_OB_ROOTSERVICE_EVENT_HISTORY
          • oceanbase.CDB_OB_ARCHIVELOG_PIECE_FILES
          • oceanbase.CDB_OB_DATABASES
          • oceanbase.CDB_OB_LS_LOCATIONS
          • oceanbase.CDB_OB_MAJOR_COMPACTION
          • oceanbase.CDB_OB_RESTORE_HISTORY
          • oceanbase.CDB_OB_RESTORE_PROGRESS
          • oceanbase.CDB_OB_TABLEGROUP_PARTITIONS
          • oceanbase.CDB_OB_TABLEGROUP_SUBPARTITIONS
          • oceanbase.CDB_OB_TABLEGROUP_TABLES
          • oceanbase.CDB_OB_TABLEGROUPS
          • oceanbase.CDB_OB_TABLET_REPLICAS
          • oceanbase.CDB_OB_TABLET_TO_LS
          • oceanbase.CDB_OB_ZONE_MAJOR_COMPACTION
          • oceanbase.CDB_OBJECTS
          • oceanbase.CDB_PART_INDEXES
          • oceanbase.CDB_PART_KEY_COLUMNS
          • oceanbase.CDB_PART_TABLES
          • oceanbase.CDB_SUBPART_KEY_COLUMNS
          • oceanbase.CDB_SUBPARTITION_TEMPLATES
          • oceanbase.CDB_TAB_COL_STATISTICS
          • oceanbase.CDB_TAB_COLS
          • oceanbase.CDB_TAB_COLS_V$
          • oceanbase.CDB_TAB_PARTITIONS
          • oceanbase.CDB_TAB_SUBPARTITIONS
          • oceanbase.CDB_TABLES
          • oceanbase.CDB_OB_BACKUP_SET_FILES
          • oceanbase.DBA_OB_BACKUP_SET_FILES
          • oceanbase.CDB_OB_BACKUP_JOBS
          • oceanbase.DBA_OB_BACKUP_JOBS
          • oceanbase.CDB_OB_BACKUP_JOB_HISTORY
          • oceanbase.DBA_OB_BACKUP_JOB_HISTORY
          • oceanbase.CDB_OB_BACKUP_TASKS
          • oceanbase.DBA_OB_BACKUP_TASKS
          • oceanbase.CDB_OB_BACKUP_TASK_HISTORY
          • oceanbase.DBA_OB_BACKUP_TASK_HISTORY
          • oceanbase.DBA_OB_ARCHIVELOG_PIECE_FILES
          • oceanbase.DBA_OB_RESTORE_PROGRESS
          • oceanbase.DBA_OB_RESTORE_HISTORY
          • oceanbase.CDB_OB_ARCHIVE_DEST
          • oceanbase.DBA_OB_ARCHIVE_DEST
          • oceanbase.CDB_OB_ARCHIVELOG
          • oceanbase.DBA_OB_ARCHIVELOG
          • oceanbase.CDB_OB_ARCHIVELOG_SUMMARY
          • oceanbase.DBA_OB_ARCHIVELOG_SUMMARY
          • oceanbase.CDB_OB_BACKUP_PARAMETER
          • oceanbase.DBA_OB_BACKUP_PARAMETER
          • oceanbase.DBA_OB_OUTLINE_CONCURRENT_HISTORY
          • oceanbase.DBA_OB_OUTLINES
          • oceanbase.DBA_OB_CONCURRENT_LIMIT_SQL
          • oceanbase.CDB_OB_SYS_VARIABLES
          • oceanbase.CDB_OB_BACKUP_DELETE_JOBS
          • oceanbase.DBA_OB_BACKUP_DELETE_JOBS
          • oceanbase.CDB_OB_BACKUP_DELETE_JOB_HISTORY
          • oceanbase.DBA_OB_BACKUP_DELETE_JOB_HISTORY
          • oceanbase.CDB_OB_BACKUP_DELETE_TASKS
          • oceanbase.DBA_OB_BACKUP_DELETE_TASKS
          • oceanbase.CDB_OB_BACKUP_DELETE_TASK_HISTORY
          • oceanbase.DBA_OB_BACKUP_DELETE_TASK_HISTORY
          • oceanbase.CDB_OB_BACKUP_STORAGE_INFO
          • oceanbase.DBA_OB_BACKUP_STORAGE_INFO
          • oceanbase.CDB_OB_BACKUP_STORAGE_INFO_HISTORY
          • oceanbase.DBA_OB_BACKUP_STORAGE_INFO_HISTORY
          • oceanbase.CDB_OB_BACKUP_DELETE_POLICY
          • oceanbase.DBA_OB_BACKUP_DELETE_POLICY
          • oceanbase.CDB_OB_DEADLOCK_EVENT_HISTORY
          • oceanbase.DBA_OB_DEADLOCK_EVENT_HISTORY
          • oceanbase.CDB_OB_COLUMN_CHECKSUM_ERROR_INFO
          • oceanbase.CDB_OB_TABLET_CHECKSUM_ERROR_INFO
          • oceanbase.DBA_TAB_STATISTICS
          • oceanbase.DBA_TAB_COL_STATISTICS
          • oceanbase.DBA_PART_COL_STATISTICS
          • oceanbase.DBA_SUBPART_COL_STATISTICS
          • oceanbase.DBA_TAB_HISTOGRAMS
          • oceanbase.DBA_PART_HISTOGRAMS
          • oceanbase.DBA_SUBPART_HISTOGRAMS
          • oceanbase.DBA_TAB_STATS_HISTORY
          • oceanbase.DBA_SCHEDULER_JOBS
          • oceanbase.DBA_IND_STATISTICS
          • oceanbase.DBA_TAB_MODIFICATIONS
          • oceanbase.DBA_SQL_PLAN_BASELINES
          • oceanbase.DBA_SQL_MANAGEMENT_CONFIG
          • information_schema.QUERY_RESPONSE_TIME
          • oceanbase.CDB_OB_LS
          • oceanbase.DBA_OB_LS
          • oceanbase.CDB_OB_TABLE_LOCATIONS
          • oceanbase.DBA_OB_TABLE_LOCATIONS
          • oceanbase.DBA_OB_SERVER_EVENT_HISTORY
          • oceanbase.CDB_OB_FREEZE_INFO
          • oceanbase.DBA_OB_FREEZE_INFO
          • oceanbase.DBA_OB_LS_REPLICA_TASKS
          • oceanbase.CDB_OB_LS_REPLICA_TASKS
          • oceanbase.DBA_OB_AUTO_INCREMENT
          • oceanbase.CDB_OB_AUTO_INCREMENT
          • oceanbase.DBA_SEQUENCES
          • oceanbase.DBA_SCHEDULER_WINDOWS
          • oceanbase.DBA_OB_USERS
          • oceanbase.CDB_OB_USERS
          • oceanbase.DBA_OB_DATABASE_PRIVILEGE
          • oceanbase.CDB_OB_DATABASE_PRIVILEGE
          • oceanbase.DBA_OB_USER_DEFINED_RULES
          • oceanbase.CDB_OB_LS_LOG_ARCHIVE_PROGRESS
          • oceanbase.DBA_OB_LS_LOG_ARCHIVE_PROGRESS
          • oceanbase.DBA_OB_ARBITRATION_SERVICE
          • oceanbase.CDB_OB_LS_ARB_REPLICA_TASKS
          • oceanbase.DBA_OB_LS_ARB_REPLICA_TASKS
          • oceanbase.CDB_OB_LS_ARB_REPLICA_TASK_HISTORY
          • oceanbase.DBA_OB_LS_ARB_REPLICA_TASK_HISTORY
          • oceanbase.DBA_OB_CLUSTER_EVENT_HISTORY
          • oceanbase.DBA_OB_RSRC_IO_DIRECTIVES
          • oceanbase.DBA_RSRC_PLANS
          • oceanbase.DBA_RSRC_PLAN_DIRECTIVES
          • oceanbase.DBA_RSRC_GROUP_MAPPINGS
          • oceanbase.DBA_RSRC_CONSUMER_GROUPS
          • oceanbase.DBA_OB_DATA_DICTIONARY_IN_LOG
          • oceanbase.CDB_OB_DATA_DICTIONARY_IN_LOG
          • oceanbase.DBA_OB_TASK_OPT_STAT_GATHER_HISTORY
          • oceanbase.DBA_OB_TABLE_OPT_STAT_GATHER_HISTORY
          • oceanbase.CDB_OB_LOG_RESTORE_SOURCE
          • oceanbase.DBA_OB_LOG_RESTORE_SOURCE
          • oceanbase.DBA_OB_TABLE_STAT_STALE_INFO
          • oceanbase.DBA_OB_EXTERNAL_TABLE_FILES
          • oceanbase.ALL_OB_EXTERNAL_TABLE_FILES
          • oceanbase.CDB_OB_EXTERNAL_TABLE_FILES
          • oceanbase.DBA_OB_BALANCE_JOBS
          • oceanbase.CDB_OB_BALANCE_JOBS
          • oceanbase.DBA_OB_BALANCE_JOB_HISTORY
          • oceanbase.CDB_OB_BALANCE_JOB_HISTORY
          • oceanbase.DBA_OB_BALANCE_TASKS
          • oceanbase.DBA_OB_BALANCE_TASK_HISTORY
          • oceanbase.CDB_OB_BALANCE_TASKS
          • oceanbase.CDB_OB_BALANCE_TASK_HISTORY
          • oceanbase.DBA_OB_TRANSFER_TASKS
          • oceanbase.DBA_OB_TRANSFER_TASK_HISTORY
          • oceanbase.CDB_OB_TRANSFER_TASKS
          • oceanbase.CDB_OB_TRANSFER_TASK_HISTORY
          • oceanbase.CDB_OB_ACCESS_POINT
          • oceanbase.DBA_OB_ACCESS_POINT
          • oceanbase.DBA_DB_LINKS
          • oceanbase.CDB_OB_LS_HISTORY
          • oceanbase.DBA_OB_LS_HISTORY
          • oceanbase.CDB_OB_TENANT_EVENT_HISTORY
          • oceanbase.DBA_OB_TENANT_EVENT_HISTORY
          • oceanbase.DBA_WR_SNAPSHOT
          • oceanbase.CDB_WR_SNAPSHOT
          • oceanbase.DBA_WR_ACTIVE_SESSION_HISTORY
          • oceanbase.CDB_WR_ACTIVE_SESSION_HISTORY
          • oceanbase.DBA_WR_STATNAME
          • oceanbase.CDB_WR_STATNAME
          • oceanbase.DBA_WR_SYSSTAT
          • oceanbase.CDB_WR_SYSSTAT
          • oceanbase.DBA_WR_CONTROL
          • oceanbase.CDB_WR_CONTROL
          • oceanbase.CDB_OB_RECOVER_TABLE_JOBS
          • oceanbase.DBA_OB_RECOVER_TABLE_JOBS
          • oceanbase.CDB_OB_IMPORT_TABLE_JOBS
          • oceanbase.DBA_OB_IMPORT_TABLE_JOBS
          • oceanbase.CDB_OB_IMPORT_TABLE_TASKS
          • oceanbase.DBA_OB_IMPORT_TABLE_TASKS
          • oceanbase.CDB_OB_RECOVER_TABLE_JOB_HISTORY
          • oceanbase.DBA_OB_RECOVER_TABLE_JOB_HISTORY
          • oceanbase.CDB_OB_IMPORT_TABLE_JOB_HISTORY
          • oceanbase.DBA_OB_IMPORT_TABLE_JOB_HISTORY
          • oceanbase.CDB_OB_IMPORT_TABLE_TASK_HISTORY
          • oceanbase.DBA_OB_IMPORT_TABLE_TASK_HISTORY
          • oceanbase.CDB_OB_KV_TTL_TASKS
          • oceanbase.CDB_OB_KV_TTL_TASK_HISTORY
          • oceanbase.DBA_OB_KV_TTL_TASKS
          • oceanbase.DBA_OB_KV_TTL_TASK_HISTORY
          • oceanbase.CDB_OB_TRANSFER_PARTITION_TASKS
          • oceanbase.CDB_OB_TRANSFER_PARTITION_TASK_HISTORY
          • oceanbase.DBA_OB_TRANSFER_PARTITION_TASKS
          • oceanbase.DBA_OB_TRANSFER_PARTITION_TASK_HISTORY
          • oceanbase.CDB_WR_SYSTEM_EVENT
          • oceanbase.DBA_WR_SYSTEM_EVENT
          • oceanbase.CDB_WR_EVENT_NAME
          • oceanbase.DBA_WR_EVENT_NAME
          • oceanbase.CDB_WR_SQLSTAT
          • oceanbase.DBA_WR_SQLSTAT
          • oceanbase.CDB_WR_SYS_TIME_MODEL
          • oceanbase.DBA_WR_SYS_TIME_MODEL
          • oceanbase.CDB_WR_SQLTEXT
          • oceanbase.DBA_WR_SQLTEXT
          • mysql.procs_priv
          • oceanbase.DBA_OB_SYS_VARIABLES
        • Performance views
          • GV$OB_COMPACTION_DIAGNOSE_INFO
          • GV$OB_COMPACTION_PROGRESS
          • GV$OB_COMPACTION_SUGGESTIONS
          • GV$OB_KVCACHE
          • GV$OB_PARAMETERS
          • GV$OB_PROCESSLIST
          • GV$OB_PX_TARGET_MONITOR
          • GV$OB_SERVERS
          • GV$OB_TABLET_COMPACTION_HISTORY
          • GV$OB_TABLET_COMPACTION_PROGRESS
          • GV$OB_TRANSACTION_PARTICIPANTS
          • GV$OB_UNITS
          • GV$OB_PLAN_CACHE_STAT
          • GV$OB_PLAN_CACHE_PLAN_STAT
          • GV$SESSION_EVENT
          • GV$SESSION_WAIT
          • GV$SESSION_WAIT_HISTORY
          • GV$SYSTEM_EVENT
          • GV$SESSTAT
          • GV$OB_IO_BENCHMARK
          • GV$OB_SQL_AUDIT
          • GV$LATCH
          • GV$OB_MEMORY
          • GV$OB_MEMSTORE
          • GV$OB_PLAN_CACHE_PLAN_EXPLAIN
          • GV$OB_RPC_OUTGOING
          • GV$OB_RPC_INCOMING
          • GV$SQL_PLAN_MONITOR
          • GV$SYSSTAT
          • GV$ACTIVE_SESSION_HISTORY
          • GV$DML_STATS
          • GV$SESSION_LONGOPS
          • GV$OB_PX_WORKER_STAT
          • GV$OB_PS_STAT
          • GV$OB_PS_ITEM_INFO
          • GV$SQL_WORKAREA
          • GV$SQL_WORKAREA_HISTOGRAM
          • GV$OB_SQL_WORKAREA_MEMORY_INFO
          • GV$OB_SERVER_SCHEMA_INFO
          • GV$OB_MERGE_INFO
          • GV$OB_SSTABLES
          • GV$OB_TENANT_MEMORY
          • V$OB_COMPACTION_DIAGNOSE_INFO
          • V$OB_COMPACTION_PROGRESS
          • V$OB_COMPACTION_SUGGESTIONS
          • V$OB_KVCACHE
          • V$OB_PARAMETERS
          • V$OB_PROCESSLIST
          • V$OB_PX_TARGET_MONITOR
          • V$OB_SERVERS
          • V$OB_TABLET_COMPACTION_HISTORY
          • V$OB_TABLET_COMPACTION_PROGRESS
          • V$OB_TRANSACTION_PARTICIPANTS
          • V$OB_UNITS
          • V$STATNAME
          • V$EVENT_NAME
          • V$SESSION_WAIT
          • V$SESSION_WAIT_HISTORY
          • V$SESSTAT
          • V$SYSTEM_EVENT
          • V$OB_MEMORY
          • V$OB_MEMSTORE
          • V$OB_PLAN_CACHE_STAT
          • V$OB_PLAN_CACHE_PLAN_STAT
          • V$OB_PLAN_CACHE_PLAN_EXPLAIN
          • V$OB_SQL_AUDIT
          • V$OB_RPC_OUTGOING
          • V$OB_RPC_INCOMING
          • V$SQL_PLAN_MONITOR
          • V$SESSION_LONGOPS
          • V$LATCH
          • V$OB_PX_WORKER_STAT
          • V$OB_PS_STAT
          • V$OB_PS_ITEM_INFO
          • V$SQL_WORKAREA
          • V$SQL_WORKAREA_ACTIVE
          • V$SQL_WORKAREA_HISTOGRAM
          • V$OB_SQL_WORKAREA_MEMORY_INFO
          • V$OB_SERVER_SCHEMA_INFO
          • V$OB_MERGE_INFO
          • V$SQL_MONITOR_STATNAME
          • V$OB_ENCRYPTED_TABLES
          • V$ENCRYPTED_TABLESPACES
          • V$OB_SSTABLES
          • V$OB_TENANT_MEMORY
          • GV$SQL_WORKAREA_ACTIVE
          • GV$OB_MEMSTORE_INFO
          • V$OB_MEMSTORE_INFO
          • GV$OB_IO_CALIBRATION_STATUS
          • V$OB_IO_CALIBRATION_STATUS
          • GV$OB_DTL_INTERM_RESULT_MONITOR
          • V$OB_IO_BENCHMARK
          • V$SYSSTAT
          • V$SESSION_EVENT
          • V$ACTIVE_SESSION_HISTORY
          • V$DML_STATS
          • GV$OB_LOG_STAT
          • V$OB_LOG_STAT
          • V$OB_DTL_INTERM_RESULT_MONITOR
          • V$OB_LS_REPLICA_TASK_PLAN
          • V$OB_ARCHIVE_DEST_STATUS
          • V$RSRC_PLAN
          • GV$OB_THREAD
          • V$OB_THREAD
          • GV$OB_ARBITRATION_SERVICE_STATUS
          • V$OB_ARBITRATION_SERVICE_STATUS
          • GV$OB_ARBITRATION_MEMBER_INFO
          • V$OB_ARBITRATION_MEMBER_INFO
          • GV$OB_OPT_STAT_GATHER_MONITOR
          • V$OB_OPT_STAT_GATHER_MONITOR
          • GV$OB_LOCKS
          • V$OB_LOCKS
          • V$OB_LS_LOG_RESTORE_STATUS
          • V$OB_TIMESTAMP_SERVICE
          • GV$OB_PX_P2P_DATAHUB
          • V$OB_PX_P2P_DATAHUB
          • GV$SQL_JOIN_FILTER
          • V$SQL_JOIN_FILTER
          • GV$OB_SQL_PLAN
          • V$OB_SQL_PLAN
          • GV$OB_TENANT_RUNTIME_INFO
          • V$OB_TENANT_RUNTIME_INFO
          • GV$OB_FLT_TRACE_CONFIG
          • GV$OB_KV_CONNECTIONS
          • V$OB_KV_CONNECTIONS
          • GV$OB_PL_CACHE_OBJECT
          • V$OB_PL_CACHE_OBJECT
          • GV$OB_SQLSTAT
          • V$OB_SQLSTAT
          • GV$OB_SESS_TIME_MODEL
          • V$OB_SESS_TIME_MODEL
          • GV$OB_SYS_TIME_MODEL
          • V$OB_SYS_TIME_MODEL
          • GV$OB_ACTIVE_SESSION_HISTORY
          • V$OB_ACTIVE_SESSION_HISTORY
          • GV$OB_CGROUP_CONFIG
          • V$OB_CGROUP_CONFIG
      • MySQL tenant views
        • Dictionary views
          • information_schema.CHARACTER_SETS
          • information_schema.CHECK_CONSTRAINTS
          • information_schema.COLLATIONS
          • information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
          • information_schema.COLUMNS
          • information_schema.COLUMN_PRIVILEGES
          • information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS
          • information_schema.ENGINES
          • information_schema.GLOBAL_STATUS
          • information_schema.GLOBAL_VARIABLES
          • information_schema.KEY_COLUMN_USAGE
          • information_schema.PARAMETERS
          • information_schema.PARTITIONS
          • information_schema.PROCESSLIST
          • information_schema.REFERENTIAL_CONSTRAINTS
          • information_schema.ROUTINES
          • information_schema.SCHEMA_PRIVILEGES
          • information_schema.SCHEMATA
          • information_schema.SESSION_STATUS
          • information_schema.SESSION_VARIABLES
          • information_schema.STATISTICS
          • information_schema.TABLES
          • information_schema.TABLE_CONSTRAINTS
          • information_schema.TABLE_PRIVILEGES
          • information_schema.USER_PRIVILEGES
          • information_schema.VIEW_TABLE_USAGE
          • information_schema.VIEWS
          • mysql.db
          • mysql.help_category
          • mysql.help_keyword
          • mysql.help_relation
          • mysql.help_topic
          • mysql.proc
          • mysql.time_zone
          • mysql.time_zone_name
          • mysql.time_zone_transition
          • mysql.time_zone_transition_type
          • mysql.user
          • oceanbase.DBA_IND_PARTITIONS
          • oceanbase.DBA_IND_SUBPARTITIONS
          • oceanbase.DBA_OB_DATABASES
          • oceanbase.DBA_OB_LS_LOCATIONS
          • oceanbase.DBA_OB_MAJOR_COMPACTION
          • oceanbase.DBA_OB_TABLEGROUP_PARTITIONS
          • oceanbase.DBA_OB_TABLEGROUP_SUBPARTITIONS
          • oceanbase.DBA_OB_TABLEGROUP_TABLES
          • oceanbase.DBA_OB_TABLEGROUPS
          • oceanbase.DBA_OB_TABLET_REPLICAS
          • oceanbase.DBA_OB_TABLET_TO_LS
          • oceanbase.DBA_OB_ZONE_MAJOR_COMPACTION
          • oceanbase.DBA_OBJECTS
          • oceanbase.DBA_PART_INDEXES
          • oceanbase.DBA_PART_KEY_COLUMNS
          • oceanbase.DBA_PART_TABLES
          • oceanbase.DBA_OB_SEQUENCE_OBJECTS
          • oceanbase.DBA_SUBPART_KEY_COLUMNS
          • oceanbase.DBA_SUBPARTITION_TEMPLATES
          • oceanbase.DBA_TAB_PARTITIONS
          • oceanbase.DBA_TAB_SUBPARTITIONS
          • oceanbase.DBA_OB_BACKUP_SET_FILES
          • oceanbase.DBA_OB_BACKUP_JOBS
          • oceanbase.DBA_OB_BACKUP_JOB_HISTORY
          • oceanbase.DBA_OB_BACKUP_TASKS
          • oceanbase.DBA_OB_BACKUP_TASK_HISTORY
          • oceanbase.DBA_OB_ARCHIVELOG_PIECE_FILES
          • oceanbase.DBA_OB_RESTORE_PROGRESS
          • oceanbase.DBA_OB_RESTORE_HISTORY
          • oceanbase.DBA_OB_ARCHIVE_DEST
          • oceanbase.DBA_OB_ARCHIVELOG
          • oceanbase.DBA_OB_ARCHIVELOG_SUMMARY
          • oceanbase.DBA_OB_BACKUP_PARAMETER
          • oceanbase.DBA_OB_OUTLINE_CONCURRENT_HISTORY
          • oceanbase.DBA_OB_OUTLINES
          • oceanbase.DBA_OB_CONCURRENT_LIMIT_SQL
          • oceanbase.DBA_OB_BACKUP_DELETE_JOBS
          • oceanbase.DBA_OB_BACKUP_DELETE_JOB_HISTORY
          • oceanbase.DBA_OB_BACKUP_DELETE_TASKS
          • oceanbase.DBA_OB_BACKUP_DELETE_TASK_HISTORY
          • oceanbase.DBA_OB_BACKUP_STORAGE_INFO
          • oceanbase.DBA_OB_BACKUP_STORAGE_INFO_HISTORY
          • oceanbase.DBA_OB_BACKUP_DELETE_POLICY
          • oceanbase.DBA_OB_DEADLOCK_EVENT_HISTORY
          • oceanbase.DBA_TAB_STATISTICS
          • oceanbase.DBA_TAB_COL_STATISTICS
          • oceanbase.DBA_PART_COL_STATISTICS
          • oceanbase.DBA_SUBPART_COL_STATISTICS
          • oceanbase.DBA_TAB_HISTOGRAMS
          • oceanbase.DBA_PART_HISTOGRAMS
          • oceanbase.DBA_SUBPART_HISTOGRAMS
          • oceanbase.DBA_TAB_STATS_HISTORY
          • oceanbase.DBA_SCHEDULER_JOBS
          • oceanbase.DBA_IND_STATISTICS
          • oceanbase.DBA_TAB_MODIFICATIONS
          • oceanbase.DBA_SQL_PLAN_BASELINES
          • oceanbase.DBA_SQL_MANAGEMENT_CONFIG
          • information_schema.QUERY_RESPONSE_TIME
          • oceanbase.DBA_OB_LS
          • oceanbase.DBA_OB_TABLE_LOCATIONS
          • oceanbase.DBA_OB_FREEZE_INFO
          • oceanbase.DBA_OB_LS_REPLICA_TASKS
          • oceanbase.DBA_OB_AUTO_INCREMENT
          • oceanbase.DBA_SEQUENCES
          • oceanbase.DBA_SCHEDULER_WINDOWS
          • oceanbase.DBA_OB_USERS
          • oceanbase.DBA_OB_DATABASE_PRIVILEGE
          • oceanbase.DBA_OB_USER_DEFINED_RULES
          • oceanbase.DBA_OB_TENANTS
          • oceanbase.DBA_OB_LS_LOG_ARCHIVE_PROGRESS
          • oceanbase.DBA_OB_LS_ARB_REPLICA_TASKS
          • oceanbase.DBA_OB_LS_ARB_REPLICA_TASK_HISTORY
          • information_schema.ST_GEOMETRY_COLUMNS
          • information_schema.ST_SPATIAL_REFERENCE_SYSTEMS
          • oceanbase.DBA_OB_RSRC_IO_DIRECTIVES
          • oceanbase.DBA_RSRC_PLANS
          • oceanbase.DBA_RSRC_PLAN_DIRECTIVES
          • oceanbase.DBA_RSRC_GROUP_MAPPINGS
          • oceanbase.DBA_RSRC_CONSUMER_GROUPS
          • oceanbase.DBA_OB_DATA_DICTIONARY_IN_LOG
          • oceanbase.DBA_OB_TASK_OPT_STAT_GATHER_HISTORY
          • oceanbase.DBA_OB_TABLE_OPT_STAT_GATHER_HISTORY
          • oceanbase.DBA_OB_LOG_RESTORE_SOURCE
          • oceanbase.DBA_OB_TABLE_STAT_STALE_INFO
          • oceanbase.DBA_OB_EXTERNAL_TABLE_FILES
          • oceanbase.ALL_OB_EXTERNAL_TABLE_FILES
          • oceanbase.DBA_OB_BALANCE_JOBS
          • oceanbase.DBA_OB_BALANCE_JOB_HISTORY
          • oceanbase.DBA_OB_BALANCE_TASKS
          • oceanbase.DBA_OB_BALANCE_TASK_HISTORY
          • oceanbase.DBA_OB_TRANSFER_TASKS
          • oceanbase.DBA_OB_TRANSFER_TASK_HISTORY
          • oceanbase.DBA_OB_ACCESS_POINT
          • oceanbase.DBA_DB_LINKS
          • oceanbase.DBA_OB_LS_HISTORY
          • oceanbase.DBA_OB_TENANT_EVENT_HISTORY
          • oceanbase.DBA_WR_SNAPSHOT
          • oceanbase.DBA_WR_ACTIVE_SESSION_HISTORY
          • oceanbase.DBA_WR_STATNAME
          • oceanbase.DBA_WR_SYSSTAT
          • oceanbase.DBA_WR_CONTROL
          • oceanbase.DBA_OB_RECOVER_TABLE_JOBS
          • oceanbase.DBA_OB_IMPORT_TABLE_JOBS
          • oceanbase.DBA_OB_IMPORT_TABLE_TASKS
          • oceanbase.DBA_OB_RECOVER_TABLE_JOB_HISTORY
          • oceanbase.DBA_OB_IMPORT_TABLE_JOB_HISTORY
          • oceanbase.DBA_OB_IMPORT_TABLE_TASK_HISTORY
          • oceanbase.DBA_OB_KV_TTL_TASKS
          • oceanbase.DBA_OB_KV_TTL_TASK_HISTORY
          • oceanbase.DBA_OB_TRANSFER_PARTITION_TASKS
          • oceanbase.DBA_OB_TRANSFER_PARTITION_TASK_HISTORY
          • oceanbase.DBA_WR_SYSTEM_EVENT
          • oceanbase.DBA_WR_EVENT_NAME
          • oceanbase.DBA_WR_SQLSTAT
          • oceanbase.DBA_WR_SYS_TIME_MODEL
          • oceanbase.DBA_WR_SQLTEXT
          • mysql.procs_priv
          • oceanbase.DBA_OB_SYS_VARIABLES
        • Performance views
          • GV$OB_COMPACTION_DIAGNOSE_INFO
          • GV$OB_COMPACTION_PROGRESS
          • GV$OB_COMPACTION_SUGGESTIONS
          • GV$OB_KVCACHE
          • GV$OB_PARAMETERS
          • GV$OB_PROCESSLIST
          • GV$OB_PX_TARGET_MONITOR
          • GV$OB_SERVERS
          • GV$OB_TABLET_COMPACTION_HISTORY
          • GV$OB_TABLET_COMPACTION_PROGRESS
          • GV$OB_TRANSACTION_PARTICIPANTS
          • GV$OB_UNITS
          • GV$OB_PLAN_CACHE_STAT
          • GV$OB_PLAN_CACHE_PLAN_STAT
          • GV$SESSION_EVENT
          • GV$SESSION_WAIT
          • GV$SESSION_WAIT_HISTORY
          • GV$SYSTEM_EVENT
          • GV$SESSTAT
          • GV$OB_SQL_AUDIT
          • GV$LATCH
          • GV$OB_MEMORY
          • GV$OB_MEMSTORE
          • GV$OB_PLAN_CACHE_PLAN_EXPLAIN
          • GV$OB_RPC_OUTGOING
          • GV$OB_RPC_INCOMING
          • GV$SQL_PLAN_MONITOR
          • GV$SESSION_LONGOPS
          • GV$OB_PX_WORKER_STAT
          • GV$OB_PS_STAT
          • GV$OB_PS_ITEM_INFO
          • GV$SQL_WORKAREA
          • GV$SQL_WORKAREA_HISTOGRAM
          • GV$OB_SQL_WORKAREA_MEMORY_INFO
          • GV$OB_SERVER_SCHEMA_INFO
          • GV$OB_MERGE_INFO
          • GV$OB_SSTABLES
          • GV$OB_TENANT_MEMORY
          • V$OB_COMPACTION_DIAGNOSE_INFO
          • V$OB_COMPACTION_PROGRESS
          • V$OB_COMPACTION_SUGGESTIONS
          • V$OB_KVCACHE
          • V$OB_PARAMETERS
          • V$OB_PROCESSLIST
          • V$OB_PX_TARGET_MONITOR
          • V$OB_SERVERS
          • V$OB_TABLET_COMPACTION_HISTORY
          • V$OB_TABLET_COMPACTION_PROGRESS
          • V$OB_TRANSACTION_PARTICIPANTS
          • V$OB_UNITS
          • V$STATNAME
          • V$EVENT_NAME
          • V$SESSION_WAIT
          • V$SESSION_WAIT_HISTORY
          • V$SESSTAT
          • V$SYSTEM_EVENT
          • V$OB_MEMORY
          • V$OB_MEMSTORE
          • V$OB_PLAN_CACHE_STAT
          • V$OB_PLAN_CACHE_PLAN_STAT
          • V$OB_PLAN_CACHE_PLAN_EXPLAIN
          • V$OB_SQL_AUDIT
          • V$OB_RPC_OUTGOING
          • V$OB_RPC_INCOMING
          • V$SQL_PLAN_MONITOR
          • V$SESSION_LONGOPS
          • V$LATCH
          • V$OB_PX_WORKER_STAT
          • V$OB_PS_STAT
          • V$OB_PS_ITEM_INFO
          • V$SQL_WORKAREA
          • V$SQL_WORKAREA_ACTIVE
          • V$SQL_WORKAREA_HISTOGRAM
          • V$OB_SQL_WORKAREA_MEMORY_INFO
          • V$OB_SERVER_SCHEMA_INFO
          • V$OB_MERGE_INFO
          • V$SQL_MONITOR_STATNAME
          • V$OB_ENCRYPTED_TABLES
          • V$ENCRYPTED_TABLESPACES
          • V$OB_SSTABLES
          • V$OB_TENANT_MEMORY
          • GV$SQL_WORKAREA_ACTIVE
          • GV$OB_MEMSTORE_INFO
          • V$OB_MEMSTORE_INFO
          • GV$SYSSTAT
          • V$SYSSTAT
          • V$SESSION_EVENT
          • GV$ACTIVE_SESSION_HISTORY
          • V$ACTIVE_SESSION_HISTORY
          • GV$DML_STATS
          • V$DML_STATS
          • GV$OB_LOG_STAT
          • V$OB_LOG_STAT
          • GV$OB_DTL_INTERM_RESULT_MONITOR
          • V$OB_DTL_INTERM_RESULT_MONITOR
          • V$OB_LS_REPLICA_TASK_PLAN
          • V$OB_ARCHIVE_DEST_STATUS
          • V$RSRC_PLAN
          • GV$OB_THREAD
          • V$OB_THREAD
          • GV$OB_ARBITRATION_SERVICE_STATUS
          • V$OB_ARBITRATION_SERVICE_STATUS
          • GV$OB_ARBITRATION_MEMBER_INFO
          • V$OB_ARBITRATION_MEMBER_INFO
          • GV$OB_OPT_STAT_GATHER_MONITOR
          • V$OB_OPT_STAT_GATHER_MONITOR
          • GV$OB_LOCKS
          • V$OB_LOCKS
          • V$OB_LS_LOG_RESTORE_STATUS
          • V$OB_TIMESTAMP_SERVICE
          • GV$OB_PX_P2P_DATAHUB
          • V$OB_PX_P2P_DATAHUB
          • GV$SQL_JOIN_FILTER
          • V$SQL_JOIN_FILTER
          • GV$OB_SQL_PLAN
          • V$OB_SQL_PLAN
          • GV$OB_KV_CONNECTIONS
          • V$OB_KV_CONNECTIONS
          • GV$OB_PL_CACHE_OBJECT
          • V$OB_PL_CACHE_OBJECT
          • GV$OB_SQLSTAT
          • V$OB_SQLSTAT
          • GV$OB_SESS_TIME_MODEL
          • V$OB_SESS_TIME_MODEL
          • GV$OB_SYS_TIME_MODEL
          • V$OB_SYS_TIME_MODEL
          • GV$OB_ACTIVE_SESSION_HISTORY
          • V$OB_ACTIVE_SESSION_HISTORY
          • GV$OB_CGROUP_CONFIG
          • V$OB_CGROUP_CONFIG
      • Oracle tenant views
        • Dictionary views
          • ALL_ALL_TABLES
          • ALL_ARGUMENTS
          • ALL_COL_COMMENTS
          • ALL_COLL_TYPES
          • ALL_COL_PRIVS
          • ALL_CONSTRAINTS
          • ALL_CONS_COLUMNS
          • ALL_DEF_AUDIT_OPTS
          • ALL_ERRORS
          • ALL_INDEXES
          • ALL_IND_COLUMNS
          • ALL_IND_EXPRESSIONS
          • ALL_IND_PARTITIONS
          • ALL_IND_SUBPARTITIONS
          • ALL_METHOD_PARAMS
          • ALL_OBJECTS
          • ALL_PART_INDEXES
          • ALL_PART_KEY_COLUMNS
          • ALL_PART_TABLES
          • ALL_PROCEDURES
          • ALL_PROFILES
          • ALL_SCHEDULER_JOB_ARGS
          • ALL_SCHEDULER_PROGRAM_ARGS
          • ALL_SEQUENCES
          • ALL_SOURCE
          • ALL_SUBPARTITION_TEMPLATES
          • ALL_SUBPART_KEY_COLUMNS
          • ALL_SYNONYMS
          • ALL_TABLES
          • ALL_TAB_COLS
          • ALL_TAB_COLUMNS
          • ALL_TAB_COMMENTS
          • ALL_TAB_PARTITIONS
          • ALL_TAB_PRIVS
          • ALL_TAB_STATS_HISTORY
          • ALL_TAB_SUBPARTITIONS
          • ALL_TRIGGERS
          • ALL_TYPES
          • ALL_TYPE_ATTRS
          • ALL_TYPE_METHODS
          • ALL_USERS
          • ALL_VIEWS
          • ALL_DIRECTORIES
          • ALL_DEPENDENCIES
          • ALL_PART_COL_STATISTICS
          • ALL_PART_HISTOGRAMS
          • ALL_SUBPART_COL_STATISTICS
          • ALL_SUBPART_HISTOGRAMS
          • ALL_TAB_COL_STATISTICS
          • ALL_TAB_HISTOGRAMS
          • ALL_TAB_STATISTICS
          • AUDIT_ACTIONS
          • DBA_ALL_TABLES
          • DBA_ARGUMENTS
          • DBA_AUDIT_EXISTS
          • DBA_AUDIT_OBJECT
          • DBA_AUDIT_SESSION
          • DBA_AUDIT_STATEMENT
          • DBA_AUDIT_TRAIL
          • DBA_COLL_TYPES
          • DBA_COL_COMMENTS
          • DBA_COL_PRIVS
          • DBA_CONSTRAINTS
          • DBA_CONS_COLUMNS
          • DBA_CONTEXT
          • DBA_ERRORS
          • DBA_INDEXES
          • DBA_IND_COLUMNS
          • DBA_IND_EXPRESSIONS
          • DBA_IND_PARTITIONS
          • DBA_IND_SUBPARTITIONS
          • DBA_OB_DATABASES
          • DBA_OB_LS_LOCATIONS
          • DBA_OB_MAJOR_COMPACTION
          • DBA_OB_TABLEGROUP_TABLES
          • DBA_OB_TABLEGROUP_SUBPARTITIONS
          • DBA_OB_TABLEGROUP_PARTITIONS
          • DBA_OB_TABLEGROUPS
          • DBA_OB_TABLET_REPLICAS
          • DBA_OB_TABLET_TO_LS
          • DBA_OB_ZONE_MAJOR_COMPACTION
          • DBA_METHOD_PARAMS
          • DBA_OBJECTS
          • DBA_OBJ_AUDIT_OPTS
          • DBA_PART_INDEXES
          • DBA_PART_KEY_COLUMNS
          • DBA_PART_TABLES
          • DBA_PROCEDURES
          • DBA_PROFILES
          • DBA_ROLES
          • DBA_ROLE_PRIVS
          • DBA_SCHEDULER_JOB_ARGS
          • DBA_SCHEDULER_JOBS
          • DBA_SCHEDULER_PROGRAM
          • DBA_SCHEDULER_PROGRAM_ARGS
          • DBA_SEGMENTS
          • DBA_SOURCE
          • DBA_STMT_AUDIT_OPTS
          • DBA_SUBPARTITION_TEMPLATES
          • DBA_SUBPART_KEY_COLUMNS
          • DBA_SYNONYMS
          • DBA_SYS_PRIVS
          • DBA_TABLES
          • DBA_TABLESPACES
          • DBA_TAB_COLS
          • DBA_TAB_COLUMNS
          • DBA_TAB_COMMENTS
          • DBA_TAB_PARTITIONS
          • DBA_TAB_PRIVS
          • DBA_TAB_STATS_HISTORY
          • DBA_TAB_SUBPARTITIONS
          • DBA_TRIGGERS
          • DBA_TYPES
          • DBA_TYPE_ATTRS
          • DBA_TYPE_METHODS
          • DBA_USERS
          • DBA_VIEWS
          • DBA_RECYCLEBIN
          • DBA_DEPENDENCIES
          • DBA_RSRC_CONSUMER_GROUPS
          • DBA_RSRC_GROUP_MAPPINGS
          • DBA_RSRC_PLANS
          • DBA_RSRC_PLAN_DIRECTIVES
          • DBA_DIRECTORIES
          • DBA_JOBS
          • DBA_JOBS_RUNNING
          • DBA_PART_COL_STATISTICS
          • DBA_PART_HISTOGRAMS
          • DBA_SUBPART_COL_STATISTICS
          • DBA_SUBPART_HISTOGRAMS
          • DBA_TAB_COL_STATISTICS
          • DBA_TAB_HISTOGRAMS
          • DBA_TAB_STATISTICS
          • NLS_DATABASE_PARAMETERS
          • NLS_INSTANCE_PARAMETERS
          • NLS_SESSION_PARAMETERS
          • STMT_AUDIT_OPTION_MAP
          • TENANT_VIRTUAL_GLOBAL_VARIABLE
          • TENANT_VIRTUAL_SESSION_VARIABLE
          • USER_ALL_TABLES
          • USER_ARGUMENTS
          • USER_AUDIT_OBJECT
          • USER_AUDIT_SESSION
          • USER_AUDIT_STATEMENT
          • USER_AUDIT_TRAIL
          • USER_COLL_TYPES
          • USER_COL_COMMENTS
          • USER_COL_PRIVS
          • USER_CONSTRAINTS
          • USER_CONS_COLUMNS
          • USER_ERRORS
          • USER_INDEXES
          • USER_IND_COLUMNS
          • USER_IND_EXPRESSIONS
          • USER_IND_PARTITIONS
          • USER_IND_SUBPARTITIONS
          • USER_OBJECTS
          • USER_PART_INDEXES
          • USER_PART_KEY_COLUMNS
          • USER_PART_TABLES
          • USER_PROCEDURES
          • USER_PROFILES
          • USER_ROLE_PRIVS
          • USER_SEGMENTS
          • USER_SEQUENCES
          • USER_SOURCE
          • USER_SUBPARTITION_TEMPLATES
          • USER_SUBPART_KEY_COLUMNS
          • USER_SYNONYMS
          • USER_SYS_PRIVS
          • USER_TAB_STATS_HISTORY
          • USER_TAB_SUBPARTITIONS
          • USER_TRIGGERS
          • USER_TABLES
          • USER_TABLESPACES
          • USER_TAB_COLS
          • USER_TAB_COLUMNS
          • USER_TAB_COMMENTS
          • USER_TAB_PARTITIONS
          • USER_TAB_PRIVS
          • USER_TYPES
          • USER_TYPE_ATTRS
          • USER_TYPE_METHODS
          • USER_VIEWS
          • USER_JOBS
          • USER_RECYCLEBIN
          • USER_DEPENDENCIES
          • USER_PART_COL_STATISTICS
          • USER_PART_HISTOGRAMS
          • USER_SUBPART_COL_STATISTICS
          • USER_SUBPART_HISTOGRAMS
          • USER_TAB_COL_STATISTICS
          • USER_TAB_HISTOGRAMS
          • USER_TAB_STATISTICS
          • ROLE_TAB_PRIVS
          • ROLE_SYS_PRIVS
          • ROLE_ROLE_PRIVS
          • DICTIONARY
          • DICT
          • DBA_OB_BACKUP_SET_FILES
          • DBA_OB_BACKUP_JOBS
          • DBA_OB_BACKUP_JOB_HISTORY
          • DBA_OB_BACKUP_TASKS
          • DBA_OB_BACKUP_TASK_HISTORY
          • DBA_OB_ARCHIVELOG_PIECE_FILES
          • DBA_OB_RESTORE_PROGRESS
          • DBA_OB_RESTORE_HISTORY
          • DBA_OB_ARCHIVELOG
          • DBA_OB_ARCHIVELOG_SUMMARY
          • DBA_OB_BACKUP_PARAMETER
          • DBA_OB_ARCHIVE_DEST
          • DBA_OB_OUTLINE_CONCURRENT_HISTORY
          • DBA_OB_OUTLINES
          • DBA_OB_CONCURRENT_LIMIT_SQL
          • DBA_OB_BACKUP_DELETE_JOBS
          • DBA_OB_BACKUP_DELETE_JOB_HISTORY
          • DBA_OB_BACKUP_DELETE_TASKS
          • DBA_OB_BACKUP_DELETE_TASK_HISTORY
          • DBA_OB_BACKUP_STORAGE_INFO
          • DBA_OB_BACKUP_STORAGE_INFO_HISTORY
          • DBA_OB_BACKUP_DELETE_POLICY
          • DBA_OB_DEADLOCK_EVENT_HISTORY
          • ALL_IND_STATISTICS
          • DBA_IND_STATISTICS
          • USER_IND_STATISTICS
          • ALL_TAB_MODIFICATIONS
          • DBA_TAB_MODIFICATIONS
          • USER_TAB_MODIFICATIONS
          • DBA_SQL_PLAN_BASELINES
          • DBA_SQL_MANAGEMENT_CONFIG
          • USER_SCHEDULER_JOB_ARGS
          • USER_SCHEDULER_PROGRAM_ARGS
          • DBA_OB_LS
          • DBA_OB_TABLE_LOCATIONS
          • DBA_OB_FREEZE_INFO
          • DBA_OB_LS_REPLICA_TASKS
          • DBA_SEQUENCES
          • DBA_SCHEDULER_WINDOWS
          • ALL_SCHEDULER_WINDOWS
          • DBA_OB_DATABASE_PRIVILEGE
          • DBA_OB_USER_DEFINED_RULES
          • DBA_OB_TENANTS
          • DBA_OB_LS_LOG_ARCHIVE_PROGRESS
          • DBA_POLICIES
          • ALL_POLICIES
          • USER_POLICIES
          • DBA_POLICY_GROUPS
          • ALL_POLICY_GROUPS
          • USER_POLICY_GROUPS
          • DBA_POLICY_CONTEXTS
          • ALL_POLICY_CONTEXTS
          • USER_POLICY_CONTEXTS
          • DBA_SEC_RELEVANT_COLS
          • ALL_SEC_RELEVANT_COLS
          • USER_SEC_RELEVANT_COLS
          • DBA_OB_LS_ARB_REPLICA_TASKS
          • DBA_OB_LS_ARB_REPLICA_TASK_HISTORY
          • ALL_TRIGGER_ORDERING
          • DBA_TRIGGER_ORDERING
          • USER_TRIGGER_ORDERING
          • DBA_OB_RSRC_IO_DIRECTIVES
          • ALL_DB_LINKS
          • DBA_DB_LINKS
          • USER_DB_LINKS
          • DBA_OB_DATA_DICTIONARY_IN_LOG
          • DBA_OB_TASK_OPT_STAT_GATHER_HISTORY
          • DBA_OB_TABLE_OPT_STAT_GATHER_HISTORY
          • DBA_OB_LOG_RESTORE_SOURCE
          • DBA_OB_TABLE_STAT_STALE_INFO
          • DBA_OB_EXTERNAL_TABLE_FILES
          • ALL_OB_EXTERNAL_TABLE_FILES
          • DBA_OB_BALANCE_JOBS
          • DBA_OB_BALANCE_JOB_HISTORY
          • DBA_OB_BALANCE_TASKS
          • DBA_OB_BALANCE_TASK_HISTORY
          • DBA_OB_TRANSFER_TASKS
          • DBA_OB_TRANSFER_TASK_HISTORY
          • DBA_OB_ACCESS_POINT
          • DBA_OB_LS_HISTORY
          • DBA_OB_TENANT_EVENT_HISTORY
          • DBA_SCHEDULER_JOB_RUN_DETAILS
          • DBA_WR_SNAPSHOT
          • DBA_WR_ACTIVE_SESSION_HISTORY
          • DBA_WR_STATNAME
          • DBA_WR_SYSSTAT
          • DBA_WR_CONTROL
          • DBA_OB_RECOVER_TABLE_JOBS
          • DBA_OB_IMPORT_TABLE_JOBS
          • DBA_OB_IMPORT_TABLE_TASKS
          • DBA_OB_RECOVER_TABLE_JOB_HISTORY
          • DBA_OB_IMPORT_TABLE_JOB_HISTORY
          • DBA_OB_IMPORT_TABLE_TASK_HISTORY
          • DBMS_LOCK_ALLOCATED
          • USER_USERS
          • DBA_OB_TRANSFER_PARTITION_TASKS
          • DBA_OB_TRANSFER_PARTITION_TASK_HISTORY
          • DBA_WR_SYSTEM_EVENT
          • DBA_WR_EVENT_NAME
          • DBA_WR_SQLSTAT
          • DBA_WR_SYS_TIME_MODEL
          • DBA_WR_SQLTEXT
        • Performance views
          • GV$OB_COMPACTION_DIAGNOSE_INFO
          • GV$OB_COMPACTION_PROGRESS
          • GV$OB_COMPACTION_SUGGESTIONS
          • GV$OB_KVCACHE
          • GV$OB_PARAMETERS
          • GV$OB_PROCESSLIST
          • GV$OB_PX_TARGET_MONITOR
          • GV$OB_TABLET_COMPACTION_HISTORY
          • GV$OB_TABLET_COMPACTION_PROGRESS
          • GV$OB_TRANSACTION_PARTICIPANTS
          • GV$OB_UNITS
          • GV$DBLINK
          • GV$INSTANCE
          • GV$OB_MEMORY
          • GV$OB_PX_WORKER_STAT
          • GV$OB_MEMSTORE
          • GV$OB_SERVER_SCHEMA_INFO
          • GV$OB_SQL_WORKAREA_MEMORY_INFO
          • GV$OB_PLAN_CACHE_PLAN_EXPLAIN
          • GV$OB_PLAN_CACHE_PLAN_STAT
          • GV$OB_PLAN_CACHE_STAT
          • GV$OB_PS_ITEM_INFO
          • GV$OB_PS_STAT
          • GV$SESSION_WAIT
          • GV$SESSION_WAIT_HISTORY
          • GV$SESSTAT
          • GV$OB_SQL_AUDIT
          • GV$SQL_WORKAREA
          • GV$SQL_WORKAREA_ACTIVE
          • GV$SQL_WORKAREA_HISTOGRAM
          • GV$SYSTEM_EVENT
          • GV$GLOBAL_TRANSACTION
          • GV$OB_SSTABLES
          • GV$OB_TENANT_MEMORY
          • V$GLOBALCONTEXT
          • V$OB_COMPACTION_DIAGNOSE_INFO
          • V$OB_COMPACTION_PROGRESS
          • V$OB_COMPACTION_SUGGESTIONS
          • V$OB_KVCACHE
          • V$OB_PARAMETERS
          • V$OB_PROCESSLIST
          • V$OB_PX_TARGET_MONITOR
          • V$OB_TABLET_COMPACTION_HISTORY
          • V$OB_TABLET_COMPACTION_PROGRESS
          • V$OB_TRANSACTION_PARTICIPANTS
          • V$OB_UNITS
          • V$DBLINK
          • V$INSTANCE
          • V$OB_MEMORY
          • V$OB_MEMSTORE
          • V$NLS_PARAMETERS
          • V$OB_SERVER_SCHEMA_INFO
          • V$OB_SQL_WORKAREA_MEMORY_INFO
          • V$OB_PLAN_CACHE_PLAN_EXPLAIN
          • V$OB_PLAN_CACHE_PLAN_STAT
          • V$OB_PLAN_CACHE_STAT
          • V$OB_PX_WORKER_STAT
          • V$OB_PS_ITEM_INFO
          • V$OB_PS_STAT
          • V$SESSION_WAIT
          • V$SESSION_WAIT_HISTORY
          • V$SESSTAT
          • V$OB_SQL_AUDIT
          • V$SQL_WORKAREA
          • V$SQL_WORKAREA_ACTIVE
          • V$SQL_WORKAREA_HISTOGRAM
          • V$SYSTEM_EVENT
          • V$VERSION
          • V$SQL_MONITOR_STATNAME
          • V$GLOBAL_TRANSACTION
          • V$TIMEZONE_NAMES
          • V$OB_ENCRYPTED_TABLES
          • V$ENCRYPTED_TABLESPACES
          • V$RSRC_PLAN
          • V$OB_SSTABLES
          • V$OB_TENANT_MEMORY
          • GV$OB_MEMSTORE_INFO
          • V$OB_MEMSTORE_INFO
          • GV$SYSSTAT
          • V$SYSSTAT
          • V$EVENT_NAME
          • GV$ACTIVE_SESSION_HISTORY
          • V$ACTIVE_SESSION_HISTORY
          • GV$DML_STATS
          • V$DML_STATS
          • GV$OB_LOG_STAT
          • V$OB_LOG_STAT
          • GV$SQL_PLAN_MONITOR
          • V$SQL_PLAN_MONITOR
          • GV$OB_DTL_INTERM_RESULT_MONITOR
          • V$OB_DTL_INTERM_RESULT_MONITOR
          • GV$OB_GLOBAL_TRANSACTION
          • V$OB_GLOBAL_TRANSACTION
          • V$OB_LS_REPLICA_TASK_PLAN
          • GV$OPEN_CURSOR
          • V$OPEN_CURSOR
          • V$OB_ARCHIVE_DEST_STATUS
          • GV$OB_THREAD
          • V$OB_THREAD
          • GV$OB_ARBITRATION_SERVICE_STATUS
          • V$OB_ARBITRATION_SERVICE_STATUS
          • GV$OB_ARBITRATION_MEMBER_INFO
          • V$OB_ARBITRATION_MEMBER_INFO
          • GV$OB_OPT_STAT_GATHER_MONITOR
          • V$OB_OPT_STAT_GATHER_MONITOR
          • GV$OB_LOCKS
          • V$OB_LOCKS
          • V$OB_LS_LOG_RESTORE_STATUS
          • V$OB_TIMESTAMP_SERVICE
          • GV$OB_PX_P2P_DATAHUB
          • V$OB_PX_P2P_DATAHUB
          • GV$SQL_JOIN_FILTER
          • V$SQL_JOIN_FILTER
          • GV$OB_SQL_PLAN
          • V$OB_SQL_PLAN
          • GV$OB_FLT_TRACE_CONFIG
          • GV$OB_PL_CACHE_OBJECT
          • V$OB_PL_CACHE_OBJECT
          • GV$OB_SQLSTAT
          • V$OB_SQLSTAT
          • GV$OB_SESS_TIME_MODEL
          • V$OB_SESS_TIME_MODEL
          • GV$OB_SYS_TIME_MODEL
          • V$OB_SYS_TIME_MODEL
          • GV$OB_ACTIVE_SESSION_HISTORY
          • V$STATNAME
          • V$OB_ACTIVE_SESSION_HISTORY
          • DBA_OB_SYS_VARIABLES
          • GV$OB_CGROUP_CONFIG
          • V$OB_CGROUP_CONFIG
      • Common statistics events
      • General wait events
    • Parameters and system variables
      • Overview
      • Parameters
        • Overview
        • Cluster-level parameters
          • all_cluster_list
          • all_server_list
          • auto_broadcast_location_cache_rate_limit
          • auto_leader_switch_interval
          • auto_refresh_location_cache_rate_limit
          • autoinc_cache_refresh_interval
          • backup_backup_dest
          • backup_backup_dest_option
          • backup_dest_option
          • backup_concurrency
          • backup_dest
          • backup_log_archive_option
          • backup_net_limit
          • backup_recovery_window
          • backup_region
          • backup_zone
          • balance_blacklist_failure_threshold
          • balance_blacklist_retry_interval
          • balancer_emergency_percentage
          • balancer_log_interval
          • balancer_task_timeout
          • balancer_timeout_check_interval
          • balancer_tolerance_percentage
          • bf_cache_miss_count_threshold
          • bf_cache_priority
          • builtin_db_data_verify_cycle
          • cache_wash_threshold
          • clog_disk_utilization_threshold
          • clog_expire_days
          • clog_cache_priority
          • clog_disk_usage_limit_percentage
          • clog_sync_time_warn_threshold
          • clog_transport_compress_func
          • cpu_reserved
          • cluster
          • cluster_id
          • config_additional_dir
          • cpu_count
          • data_copy_concurrency
          • data_dir
          • data_disk_usage_limit_percentage
          • data_storage_error_tolerance_time
          • data_storage_warning_tolerance_time
          • datafile_disk_percentage
          • datafile_size
          • dead_socket_detection_timeout
          • debug_sync_timeout
          • default_compress
          • default_compress_func
          • default_transport_compress_func
          • default_row_format
          • devname
          • disk_io_thread_count
          • dtl_buffer_size
          • election_cpu_quota
          • election_blacklist_interval
          • enable_async_syslog
          • enable_auto_refresh_location_cache
          • enable_auto_leader_switch
          • enable_ddl
          • enable_global_freeze_trigger
          • enable_log_archive
          • enable_election_group
          • enable_major_freeze
          • enable_merge_by_turn
          • enable_manual_merge
          • enable_ob_ratelimit
          • enable_one_phase_commit
          • enable_perf_event
          • enable_pg
          • enable_record_trace_id
          • enable_record_trace_log
          • enable_rereplication
          • enable_rich_error_msg
          • enable_separate_sys_clog
          • enable_smooth_leader_switch
          • enable_rootservice_standalone
          • enable_sql_audit
          • enable_sql_operator_dump
          • enable_sys_table_ddl
          • enable_sys_unit_standalone
          • enable_syslog_recycle
          • enable_syslog_wf
          • enable_tcp_keepalive
          • fast_recovery_concurrency
          • enable_upgrade_mode
          • flush_log_at_trx_commit
          • gc_wait_archive
          • fuse_row_cache_priority
          • global_index_build_single_replica_timeout
          • global_major_freeze_residual_memory
          • get_leader_candidate_rpc_timeout
          • global_write_halt_residual_memory
          • high_priority_net_thread_count
          • ignore_replay_checksum_error
          • ignore_replica_checksum_error
          • index_clog_cache_priority
          • index_info_block_cache_priority
          • index_cache_priority
          • ilog_index_expire_time
          • internal_sql_execute_timeout
          • large_query_threshold
          • large_query_worker_percentage
          • leak_mod_to_check
          • lease_time
          • location_cache_cpu_quota
          • location_cache_priority
          • location_cache_expire_time
          • location_cache_refresh_min_interval
          • location_cache_refresh_rpc_timeout
          • location_cache_refresh_sql_timeout
          • location_fetch_concurrency
          • location_refresh_thread_count
          • log_archive_batch_buffer_limit
          • log_archive_checkpoint_interval
          • max_kept_major_version_number
          • max_px_worker_count
          • max_string_print_length
          • max_syslog_file_count
          • memory_chunk_cache_size
          • memory_limit
          • memory_limit_percentage
          • memory_reserved
          • memstore_limit_percentage
          • merge_stat_sampling_ratio
          • merge_thread_count
          • merger_completion_percentage
          • merger_switch_leader_duration_time
          • merger_warm_up_duration_time
          • micro_block_merge_verify_level
          • migrate_concurrency
          • migration_disable_time
          • min_observer_version
          • minor_deferred_gc_time
          • mysql_port
          • net_thread_count
          • ob_event_history_recycle_interval
          • ob_ratelimit_stat_period
          • obconfig_url
          • tablet_meta_table_check_interval
          • tablet_meta_table_scan_batch_count
          • plan_cache_evict_interval
          • plan_cache_high_watermark
          • plan_cache_low_watermark
          • px_task_size
          • px_workers_per_cpu_quota
          • rdma_io_thread_count
          • recyclebin_object_expire_time
          • ls_meta_table_check_interval
          • resource_hard_limit
          • rebuild_replica_data_lag_threshold
          • rootservice_async_task_queue_size
          • rootservice_async_task_thread_count
          • rootservice_list
          • rootservice_memory_limit
          • rootservice_ready_check_interval
          • row_compaction_update_limit
          • rpc_port
          • rpc_timeout
          • schema_history_expire_time
          • schema_history_recycle_interval
          • server_balance_cpu_mem_tolerance_percent
          • server_balance_critical_disk_waterlevel
          • server_balance_disk_tolerance_percent
          • server_check_interval
          • server_cpu_quota_max
          • server_cpu_quota_min
          • server_permanent_offline_time
          • server_data_copy_out_concurrency
          • server_data_copy_in_concurrency
          • ssl_client_authentication
          • ssl_external_kms_info
          • stack_size
          • sql_audit_memory_limit
          • sys_bkgd_migration_change_member_list_timeout
          • sys_bkgd_migration_retry_num
          • sys_bkgd_net_percentage
          • switchover_process_thread_count
          • syslog_io_bandwidth_limit
          • sys_bkgd_io_high_percentage
          • syslog_level
          • sys_bkgd_io_low_percentage
          • sys_cpu_limit_trigger
          • system_memory
          • system_trace_level
          • tablet_size
          • tcp_keepcnt
          • system_cpu_quota
          • tcp_keepidle
          • tcp_keepintvl
          • tenant_cpu_variation_per_server
          • tenant_task_queue_size
          • token_reserved_percentage
          • trace_log_sampling_interval
          • trace_log_slow_query_watermark
          • trx_2pc_retry_interval
          • tenant_groups
          • use_large_pages
          • user_block_cache_priority
          • trx_force_kill_threshold
          • user_row_cache_priority
          • trx_try_wait_lock_timeout
          • unit_balance_resource_weight
          • virtual_table_location_cache_expire_time
          • weak_read_version_refresh_interval
          • user_iort_up_percentage
          • workers_per_cpu_quota
          • zone
          • user_tab_col_stat_cache_priority
          • wait_leader_batch_count
          • log_disk_size
          • log_disk_percentage
          • tablet_ls_cache_priority
          • opt_tab_stat_cache_priority
          • zone_merge_concurrency
          • index_block_cache_priority
          • zone_merge_order
          • sql_login_thread_count
          • zone_merge_timeout
          • enable_asan_for_memory_context
          • ob_esi_rpc_port
          • enable_cgroup
          • enable_ob_esi_process
          • diag_syslog_per_error_limit
          • ob_esi_session_timeout
          • ob_esi_io_concurrency
          • ob_startup_mode
          • ob_esi_memory_limit
          • log_storage_warning_tolerance_time
          • ob_esi_syslog_level
          • ob_esi_max_syslog_file_count
          • sql_net_thread_count
          • minor_freeze_times
          • minor_merge_concurrency
          • minor_warm_up_duration_time
          • multiblock_read_gap_size
          • multiblock_read_size
          • ofs_list
          • partition_table_check_interval
          • replica_safe_remove_time
          • resource_soft_limit
          • restore_concurrency
          • rpc_client_authentication_method
          • rpc_server_authentication_method
          • row_purge_thread_count
          • datafile_maxsize
          • datafile_next
          • standby_fetch_log_bandwidth_limit
          • local_ip
          • observer_id
          • storage_meta_cache_priority
          • sql_protocol_min_tls_version
          • strict_check_os_params
        • Tenant-level parameters
          • audit_sys_operations
          • audit_trail
          • clog_max_unconfirmed_log_count
          • clog_persistence_compress_func
          • connection_control_failed_connections_threshold
          • connection_control_min_connection_delay
          • connection_control_max_connection_delay
          • enable_clog_persistence_compress
          • enable_early_lock_release
          • enable_monotonic_weak_read
          • external_kms_info
          • enable_sql_extension
          • default_progressive_merge_num
          • io_category_config
          • log_disk_utilization_limit_threshold
          • log_disk_utilization_threshold
          • major_compact_trigger
          • compaction_low_thread_score
          • ddl_thread_score
          • max_stale_time_for_weak_consistency
          • compaction_high_thread_score
          • minor_compact_trigger
          • compaction_mid_thread_score
          • ob_enable_batched_multi_statement
          • ob_proxy_readonly_transaction_routing_policy
          • ob_ssl_invited_common_names
          • open_cursors
          • plsql_code_type
          • plsql_debug
          • plsql_optimize_level
          • plsql_warnings
          • sql_work_area
          • tde_method
          • writing_throttling_maximum_duration
          • writing_throttling_trigger_percentage
          • workarea_size_policy
          • plsql_v2_compatibility
          • job_queue_processes
          • ha_high_thread_score
          • ha_mid_thread_score
          • ha_low_thread_score
          • ob_compaction_schedule_interval
          • default_auto_increment_mode
          • ob_query_switch_leader_retry_timeout
          • default_enable_extended_rowid
          • major_freeze_duty_time
          • undo_retention
          • query_response_time_stats
          • query_response_time_flush
          • query_response_time_range_base
          • merger_check_interval
          • freeze_trigger_percentage
          • cpu_quota_concurrency
          • arbitration_timeout
          • compatible
          • log_transport_compress_all
          • log_transport_compress_func
          • rpc_memory_limit_percentage
          • tenant_sql_login_thread_count
          • tenant_sql_net_thread_count
          • dump_data_dictionary_to_log_interval
          • enable_user_defined_rewrite_rules
          • partition_balance_schedule_interval
          • log_disk_throttling_percentage
          • enable_rebalance
          • balancer_idle_time
          • log_disk_throttling_maximum_duration
          • ls_gc_delay_time
          • standby_db_preferred_upstream_log_region
          • archive_lag_target
          • range_optimizer_max_mem_size
          • log_restore_concurrency
          • log_archive_concurrency
          • standby_db_fetch_log_rpc_timeout
          • enable_transfer
          • kv_ttl_duty_duration
          • kv_ttl_history_recycle_interval
          • enable_kv_ttl
          • ttl_thread_score
          • compaction_dag_cnt_limit
          • compaction_schedule_tablet_batch_cnt
          • kv_transport_compress_func
          • kv_transport_compress_threshold
          • optimizer_index_cost_adj
          • log_storage_compress_all
          • log_storage_compress_func
      • System variables
        • Overview
        • Global variables
          • auto_increment_cache_size
          • auto_increment_increment
          • auto_increment_offset
          • autocommit
          • binlog_row_image
          • block_encryption_mode
          • character_set_client
          • character_set_connection
          • character_set_database
          • character_set_filesystem
          • character_set_results
          • character_set_server
          • character_set_system
          • collation_connection
          • collation_database
          • collation_server
          • connect_timeout
          • cursor_sharing
          • datadir
          • debug_sync
          • default_password_lifetime
          • div_precision_increment
          • error_on_overlap_time
          • explicit_defaults_for_timestamp
          • foreign_key_checks
          • group_concat_max_len
          • identity
          • init_connect
          • innodb_strict_mode
          • interactive_timeout
          • license
          • lower_case_table_names
          • max_allowed_packet
          • max_connections
          • max_sp_recursion_depth
          • max_user_connections
          • net_buffer_length
          • net_read_timeout
          • net_write_timeout
          • nls_calendar
          • nls_characterset
          • nls_comp
          • nls_currency
          • nls_date_format
          • nls_date_language
          • nls_dual_currency
          • nls_iso_currency
          • nls_length_semantics
          • nls_nchar_characterset
          • nls_nchar_conv_excp
          • nls_numeric_characters
          • nls_sort
          • nls_territory
          • nls_timestamp_format
          • nls_timestamp_tz_format
          • ob_bnl_join_cache_size
          • ob_create_table_strict_mode
          • ob_default_replica_num
          • ob_compatibility_mode
          • ob_enable_blk_nestedloop_join
          • ob_early_lock_release
          • ob_enable_hash_group_by
          • ob_enable_aggregation_pushdown
          • ob_enable_index_direct_select
          • ob_enable_jit
          • ob_enable_plan_cache
          • ob_enable_sql_audit
          • ob_enable_transformation
          • ob_enable_transmission_checksum
          • ob_enable_truncate_flashback
          • ob_global_debug_sync
          • ob_log_level
          • ob_pl_block_timeout
          • ob_plan_cache_evict_high_percentage
          • ob_plan_cache_evict_low_percentage
          • ob_plan_cache_percentage
          • ob_proxy_global_variables_version
          • ob_query_timeout
          • ob_read_consistency
          • ob_reserved_meta_memory_percentage
          • ob_route_policy
          • ob_sql_audit_percentage
          • ob_sql_work_area_percentage
          • ob_tcp_invited_nodes
          • ob_temp_tablespace_size_percentage
          • ob_timestamp_service
          • ob_trx_idle_timeout
          • ob_trx_lock_timeout
          • ob_trx_timeout
          • optimizer_capture_sql_plan_baselines
          • optimizer_use_sql_plan_baselines
          • parallel_max_servers
          • parallel_servers_target
          • performance_schema
          • plugin_dir
          • query_cache_size
          • query_cache_type
          • read_only
          • recyclebin
          • resource_manager_plan
          • secure_file_priv
          • sql_auto_is_null
          • sql_mode
          • sql_quote_show_create
          • sql_safe_updates
          • sql_select_limit
          • sql_throttle_current_priority
          • sql_throttle_network
          • sql_throttle_priority
          • sql_throttle_rt
          • sql_warnings
          • system_time_zone
          • time_zone
          • transaction_isolation
          • transaction_read_only
          • tx_isolation
          • tx_read_only
          • version
          • version_comment
          • wait_timeout
          • validate_password_check_user_name
          • validate_password_length
          • validate_password_mixed_case_count
          • validate_password_number_count
          • validate_password_policy
          • validate_password_special_char_count
          • server_uuid
          • default_storage_engine
          • ob_enable_rich_error_msg
          • cte_max_recursion_depth
          • regexp_stack_limit
          • event_scheduler
          • regexp_time_limit
          • log_row_value_options
          • ob_max_read_stale_time
          • parallel_degree_policy
          • parallel_degree_limit
          • parallel_min_scan_time_threshold
          • optimizer_dynamic_sampling
          • runtime_filter_type
          • runtime_filter_wait_time_ms
          • runtime_filter_max_in_num
          • runtime_bloom_filter_max_size
          • optimizer_features_enable
          • ob_default_lob_inrow_threshold
          • automatic_sp_privileges
          • lc_time_names
          • ob_enable_pl_cache
        • Session-level variables
          • is_result_accurate
          • last_insert_id
          • nls_language
          • ob_capability_flag
          • ob_enable_show_trace
          • ob_last_schema_version
          • ob_org_cluster_id
          • ob_proxy_partition_hit
          • ob_proxy_set_trx_executed
          • ob_trace_info
          • timestamp
          • tracefile_identifier
          • ob_max_read_stale_time
          • parallel_degree_policy
          • parallel_degree_limit
          • parallel_min_scan_time_threshold
          • optimizer_dynamic_sampling
          • runtime_filter_type
          • runtime_filter_wait_time_ms
          • runtime_filter_max_in_num
          • runtime_bloom_filter_max_size
    • Error codes
      • MySQL mode
        • Overview
        • 0001 - 3999
        • 4000 - 4499
        • 4500 - 4999
        • 5000 - 5999
        • 6000 - 6999
        • 7000 - 7999
        • 8000 - 8999
        • 9000 - 9499
        • 9500 - 9999
        • 10000 - 12000
        • 22998, 30926, 38104, and 38105
      • Oracle mode
        • Overview
        • ORA-00000 to ORA-00999
        • ORA-01000 to ORA-01499
        • ORA-01500 to ORA-01999
        • ORA-02000 to ORA-04999
        • ORA-05000 to ORA-10000
        • ORA-10000 to ORA-19999
        • ORA-20000 to ORA-29999
        • ORA-30000 to ORA-49999
        • ORA-50000 to ORA-99999
        • PLS-00000 to PLS-00999
    • Performance tuning
      • Overview
      • Performance related tools
        • System tools
          • Top
          • CPU tools
          • Memory tools
          • Disk I/O tools
          • Network tools
        • Internal tables
          • GV$SYSSTAT
          • GV$OB_SQL_AUDIT
          • GV$OB_TRANSACTION_PARTICIPANTS
        • Logs
          • slow trans
          • dump tenant info
          • Trace logs
        • OCP
      • System tuning
        • OS parameter tuning
        • Database parameter tuning
          • CPU parameters
          • I/O parameters
          • Memory-related parameters
          • Network transmission parameters
        • ODP parameter tuning
          • CPU parameters
          • Network transmission parameters
          • Routing parameters on nodes
      • Business model tuning
        • Load balancing
        • SQL diagnostics
        • Distributed transactions
      • Performance diagnosis
        • Monitor and diagnose the cluster performance
        • Diagnose tenant performance
        • Monitor ODP performance
        • Monitor host performance
        • WR management
          • Overview
          • Manage WR
          • Monitor historical session performance
          • Clean up WR data
        • ASH report
          • ASH
          • Generate ASH reports
          • Analyze ASH reports
      • SQL tuning
        • Execution process of SQL queries
        • SQL execution plans
          • Introduction to SQL execution plans
          • Execution plan operators
            • TABLE SCAN
            • JOIN
            • COUNT
            • GROUP BY
            • WINDOW FUNCTION
            • SUBPLAN FILTER
            • DISTINCT
            • SEQUENCE
            • MATERIAL
            • SORT
            • LIMIT
            • FOR UPDATE
            • SELECT INTO
            • SUBPLAN SCAN
            • UNION
            • INTERSECT
            • EXCEPT/MINUS
            • INSERT
            • DELETE
            • UPDATE
            • MERGE
            • EXCHANGE
            • GI
          • Plan cache
          • Fast parameterization
          • Display real-time execution plans
          • SQL tuning practice with EXPLAIN
        • Distributed execution plans
          • Perform distributed execution and parallel queries
          • Generate a distributed plan
          • Schedule distributed execution plans
          • Manage distributed execution plans
          • Enable parallel execution and set the degree of parallelism
          • Auto DOP
          • Execute parallel queries
          • Perform parameter tuning for a parallel query
          • Parallel DML
        • Parallel execution
          • Overview
          • Deploy parallel execution
            • Set the degree of parallelism
            • Set the parallel execution parameters
        • SQL tuning
          • Overview
          • General procedure
          • SQL execution performance monitoring
            • GV$OB_SQL_AUDIT
            • SQL Trace
            • Plan cache views
            • SQL performance analysis example
              • Use SQL Audit to analyze wait events in a query
              • Analyze SQL queries that cause an abrupt RT jitter
              • View and analyze the shape of an execution plan
              • Analyze slow SQL queries
              • Query SQL traffic distribution and QPS
              • Check whether SQL queries are balanced across servers in a cluster
              • Find the TOP N SQL queries
              • Analyze whether an unusually large number of remote execution requests exist in the system or the execution of an SQL statement
              • Find full table scan SQL statements in a tenant
              • Find the TOP N queries with the longest execution time within a certain period
              • Analyze queries related to distributed plans
              • Check whether the RPC execution count of a distributed subplan is balanced across servers in a cluster
          • Optimizer statistics
            • Overview of statistics
            • Statistics collection methods
              • Overview
              • Histograms
              • Manual statistics collection
              • Automatic statistics collection
              • Online statistics collection
              • Dynamic sampling
            • Statistics management
              • Overview
              • Delete statistics
              • Set statistics
              • Import and export statistics
              • Lock and unlock statistics
              • Manage statistics history
              • Manage statistics preferences
            • Monitoring and diagnostics for statistics collection
            • Examples
          • Query rewrite
            • Overview
            • Rule-based query rewriting
            • Cost-based query rewrite
          • Query optimization
            • Access path
              • Overview
              • Rule-based path selection
              • Cost-based path selection
            • Join algorithm
              • Overview
              • Join algorithms
              • Runtime filter
              • Join order
          • Manage execution plans
            • Optimizer hints
            • Plan binding
            • SQL plan management
        • Glossary
        • General issues in SQL tuning
    • Performance test
      • Run the TPC-H benchmark on OceanBase Database
      • TPC-H benchmark report of OceanBase Database
      • Run the Sysbench benchmark on OceanBase Database
      • Sysbench benchmark report of OceanBase Database
      • Achieve high performance with Sysbench on OceanBase Database: deployment and troubleshooting
      • Run the TPC-C benchmark on OceanBase Database
      • TPC-C benchmark report of OceanBase Database
    • Database proxy
      • OceanBase Database Proxy
      • Connection and routing
      • ODP
        • Overview
        • Manage ODP clusters
          • Create an ODP cluster
          • Manage ODP cluster parameters
          • Delete an ODP cluster
          • Upgrade all ODPs in an ODP cluster
          • Restart all ODPs in an ODP cluster
          • Manage OceanBase clusters connected to an ODP cluster
          • Monitor ODP cluster performance
        • Manage ODP
          • Add an ODP
          • Start an ODP
          • Refresh ODP configurations
          • Stop an ODP
          • Restart an ODP
          • Delete an ODP
          • Upgrade one or more ODPs
        • ODP startup parameters
      • Physical connections
      • Logical connection
        • Query all sessions
        • Query the details of a session
        • Query the metrics of a session
        • Query session variables
        • Terminate a server session
      • Route management
        • Table-based routing of ODP
        • LDC-based routing
        • ODP routing policy
          • Read/Write splitting
          • Follower-first read
          • Blocklist mechanism
          • Transaction routing
      • View tenant sessions
      • Terminate a tenant session
      • Set the maximum number of connections for a tenant
    • Drivers
      • ECOB
      • OBCI
      • OceanBase Connector/J
      • OceanBase Connector/C
      • OceanBase Connector/ODBC
    • Platforms
      • OMA
      • OMS
      • OCP
      • OCP Express
        • OCP Express
        • View cluster overview information
        • Tenant management
        • Monitor a cluster
        • Diagnostic analysis
        • Log service
      • ODC
      • OAT
    • Components & tools
      • O&M management
        • OBShell
          • Overview
          • Use OBShell
            • Start or stop OBShell
          • Command line
            • Cluster commands of OBShell
            • Utilities commands of OBShell
          • API references
            • OBShell API requests
            • Authentication based on public-key encryption
            • AddNodeBeforeClusterInitialization
            • DeleteNodeBeforeClusterInitialization
            • SetClusterConfig
            • SetServerConfig
            • InitializeCluster
            • StartCluster
            • StopCluster
            • UploadPkg
            • AgentUpgradeCheck
            • ObUpgradeCheck
            • UpgradeAgent
            • UpgradeOb
            • AddNode
            • GetPublicKey
            • QueryNodeStatus
            • Query the status of an OceanBase cluster
            • OperateDag
            • GetDagDetails
            • GetNodeDetails
            • GetSubtaskDetails
            • QueryUnfinishedTasks
            • QueryUnfinishedAgentTasks
            • QueryUnfinishedObTasks
            • QueryLastObTask
            • QueryLastAgentTask
        • ob_admin
          • Overview
          • clog
            • log_tool
            • Format of clogs
            • Transaction logs
          • dumpsst
          • dump_backup
        • ob_error
        • OBD
        • ob-operator
      • Monitoring and diagnostics
        • obdiag
        • SQL diagnoser
          • Overview
          • Deploy and use SQL diagnoser
            • Install SQL Diagnoser
            • Use SQL Diagnoser
          • SQL diagnoser remarks
            • Built-in diagnostic items
            • Diagnostic rule expression
            • APIs
            • Diagnostic items of SQL review
        • DOOBA
      • Data integration
        • OBLOADER & OBDUMPER
        • Partition calculator
          • Overview
          • Use the ob-partition-calculator component
        • CDC
          • OBLogProxy
          • Overview
          • obcdc
            • Deploy and use obcdc
              • Install and deploy OBCDC
              • obcdc development instructions
              • obcdc_tailf
            • obcdc parameters
              • General obcdc parameters
              • obcdc parameters
            • FAQ about obcdc
          • oblogmsg
            • Install and deploy oblogmsg
            • Description of some oblogmsg APIs
      • Stress testing tools
        • mysqltest
          • Use obd.sh to run mysqltest
          • Use of cases
            • Add a test case
            • Test case writing conventions
            • General test case writing commands
  • FAQ
    • FAQs
    • SQL statements
    • FAQs
    • Cluster management
    • High availability
  • Release Notes
    • Version rules
    • OceanBase Database Enterprise Edition
      • V4.2
        • OceanBase Database Enterprise Edition V4.2.1
        • OceanBase Database Enterprise Edition V4.2.0
      • V4.1
        • OceanBase Database Enterprise Edition V4.1.0
      • V3.2
        • OceanBase Database Enterprise Edition V3.2.4
        • OceanBase Database Enterprise Edition V3.2.3
        • OceanBase Database Enterprise Edition V3.2.2
        • OceanBase Database Enterprise Edition V3.2.1
        • OceanBase Database Enterprise Edition V3.2.0
      • V3.1
        • OceanBase Database Enterprise Edition V3.1.2
        • OceanBase Database Enterprise Edition V3.1.1
      • V2.2
        • OceanBase Database Enterprise Edition V2.2.77
        • OceanBase Database Enterprise Edition V2.2.76
        • OceanBase Database Enterprise Edition V2.2.30
    • OceanBase Database Community Edition
      • V4.2
        • OceanBase Database Community Edition V4.2.1
        • OceanBase Database Community Edition V4.2.0
      • V4.1
        • OceanBase Database Community Edition V4.1.0
      • V4.0
        • OceanBase Database Community Edition V4.0.0
      • V3.1
        • OceanBase Database Community Edition V3.1.5
        • OceanBase Database Community Edition V3.1.4
        • OceanBase Database Community Edition V3.1.3
        • OceanBase Database Community Edition V3.1.2
        • OceanBase Database Community Edition V3.1.1
  • Glossary

Download PDF

Overview Differences between the Enterprise Edition and the Community Edition System architecture Compatibility with Oracle SQL data types Built-in functions System views Compatibility with MySQL Limitations Try out OceanBase Database Community Edition Before you begin Basic SQL operations (MySQL mode) Basic SQL operations (Oracle mode) Build a Python application Build a Java application Build a C application Build a Go application Build a Java application Build a C application Try out operational OLAP Try out parallel import and data compression Try out the multi-tenant feature Video tutorials Overview High availability deployment solutions for OceanBase clusters Deployment process Overview Deploy OceanBase Database in a Kubernetes cluster Clean up an old cluster Overview Use OMS to migrate data from a MySQL database to a MySQL tenant of OceanBase Database Use mydumper and myloader to migrate data from a MySQL database to OceanBase Database Use DBCAT to migrate schemas from a MySQL database to OceanBase Database Use DataX to migrate table data from a MySQL database to OceanBase Database Migrate data from a MySQL database to OceanBase Database using CloudCanal Use Canal to synchronize data from a MySQL database to OceanBase Database Use Flink CDC to synchronize data from a MySQL database to OceanBase Database Use ChunJun to migrate data from a MySQL database to OceanBase Database Use OMS to migrate data from a MySQL tenant of OceanBase Database to a MySQL database Use OMS to migrate incremental data from an Oracle tenant of OceanBase Database to a MySQL database Use DBCAT to migrate schemas from OceanBase Database to a MySQL database Use DataX to migrate table data from OceanBase Database to a MySQL database Synchronize data from OceanBase Database to a MySQL database using Canal Migrate data from a MySQL OceanBase database to a MySQL database using CloudCanal Migrate data from OceanBase Database to a MySQL database using Flink CDC Migrate data from a MySQL database in OceanBase Database to a MySQL database using ChunJun Use OMS to migrate data from an Oracle database to a MySQL tenant of OceanBase Database Use OMS to migrate data from an Oracle database to an Oracle tenant of OceanBase Database Use DBCAT to migrate schemas from an Oracle database to OceanBase Database Use DataX to migrate table data from an Oracle database to OceanBase Database Use OMS to migrate data from an Oracle tenant of OceanBase Database to an Oracle database Use DBCAT to migrate schemas from OceanBase Database to an Oracle database Use DataX to migrate table data from OceanBase Database to an Oracle database Use OMS to migrate data from a DB2 LUW database to a MySQL tenant of OceanBase Database Use OMS to migrate data from a DB2 LUW database to an Oracle tenant of OceanBase Database Use DBCAT to migrate table schemas from a DB2 LUW database to OceanBase Database Use OMS to migrate data from a MySQL tenant of OceanBase Database to a DB2 LUW database Use OMS to migrate data from an Oracle tenant of OceanBase Database to a DB2 LUW database Use OMS to migrate data from a TiDB database to a MySQL tenant of OceanBase Database Use OMS to migrate data from a PostgreSQL database to a MySQL tenant of OceanBase Database Use DataX to migrate CSV files to OceanBase Database Import data by using the LOAD DATA statement Import data from SQL files to OceanBase Database Use OMS to migrate data from an OceanBase tenant to another of the same type Use OMS to migrate data from an OceanBase tenant to another of the same type in active-active disaster recovery scenarios Use OBLOADER & OBDUMPER to migrate data between MySQL tenants in OceanBase Database Use OBLOADER & OBDUMPER to migrate data from a MySQL tenant to an Oracle tenant in OceanBase Database Use OBLOADER & OBDUMPER to migrate data between Oracle tenants in OceanBase Database Use OBLOADER & OBDUMPER to migrate data from an Oracle tenant to a MySQL tenant in OceanBase Database Migrate data between tables Migrate resource units Export data by using OUTFILE statements Overview Import data in bypass mode by using the LOAD DATA statement Import data in bypass mode by using the INSERT INTO SELECT statement Log on to an OceanBase tenant Overview Cluster parameters Tenant introduction Tenant capacity Tenant types User tenant introduction Tenant system variables Overview Traffic distribution Data distribution High availability overview Flashback queries Overview Introduction to physical backup and restore Deploy NFS Optimize backup and restore performance Overview Cases Overview Log levels Log stability Log control Log metrics Overview
OceanBase logo

The Unified Distributed Database for the AI Era.

Follow Us
Products
OceanBase CloudOceanBase EnterpriseOceanBase Community EditionOceanBase seekdb
Resources
DocsBlogLive DemosTraining & Certification
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.2.2
iconOceanBase Database
SQL - V 4.2.2
SQL
KV
  • 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

Rule-based query rewriting

Last Updated:2026-04-15 08:27:14  Updated
share
What is on this page
Subquery rewriting
View merging
Subquery expansion
Rewrite using MAX/MIN after converting ANY/ALL
Elimination of outer joins
Simplify conditions
Elimination of the HAVING condition
Derivation of equivalent conditions
Elimination of tautologies and contradictions
Non-SJP rewriting
Elimination of redundant sorts
Pushdown of LIMIT to subqueries
Pushdown of LIMIT to outer or cross joins
Elimination of DISTINCT
Rewriting of MIN/MAX

folded

share

Rule-based query rewriting includes subquery-related rewriting, outer join elimination, condition simplification, and rewriting of non-SPJ queries.

Subquery rewriting

The optimizer usually executes a subquery nestedly, that is, the system needs to execute the subquery as many times as the number of rows generated by the parent query. This execution method can be very inefficient because it executes the subquery multiple times. To improve the execution efficiency, the optimizer can rewrite the subquery into a join operation. The main advantages are as follows:

  • It avoids the need to execute the subquery multiple times.

  • The optimizer can choose a better join order and join method based on the statistics.

  • After the join conditions and filter conditions of the subquery are rewritten into those of the parent query, the optimizer can further optimize the conditions, such as pushing down the conditions.

Subquery rewriting includes view merging, subquery expansion, and rewriting ANY/ALL expressions into MAX/MIN expressions.

View merging

View merging is the process of merging a subquery that represents a view into the query that contains the view. This process helps the optimizer to choose better join orders, access paths, and other rewrite options to generate an optimal execution plan.

OceanBase Database supports merging SPJ views. Take a look at the following example to see how to rewrite query Q1 into Q2:

obclient>CREATE TABLE t1 (c1 INT, c2 INT);
Query OK, 0 rows affected 

obclient>CREATE TABLE t2 (c1 INT PRIMARY KEY, c2 INT);
Query OK, 0 rows affected 

obclient>CREATE TABLE t3 (c1 INT PRIMARY KEY, c2 INT);
Query OK, 0 rows affected 

Q1: 
obclient>SELECT t1.c1, v.c1 
                FROM t1, (SELECT t2.c1, t3.c2 
                FROM t2, t3 
                WHERE t2.c1 = t3.c1) v 
                WHERE t1.c2 = v.c2;
<==>
Q2: 
obclient>SELECT t1.c1, t2.c1 
                FROM t1, t2, t3 
                WHERE t2.c1 = t3.c1 AND t1.c2 = t3.c2;

If Q1 is not rewritten, the possible join orders are as follows:

  • t1, v(t2,t3)

  • t1, v(t3,t2)

  • v(t2,t3), t1

  • v(t3,t2), t1

After view merging, the possible join orders are as follows:

  • t1, t2, t3

  • t1, t3, t2

  • t2, t1, t3

  • t2, t3, t1

  • t3, t1, t2

  • t3, t2, t1

As we can see, view merging increases the flexibility of join orders. For complex queries, view merging increases the flexibility of path selection and other rewrite options, thereby enabling the optimizer to generate better execution plans.

Subquery expansion

Subquery expansion is the process of elevating a WHERE condition subquery to the parent query and rewriting it as a join condition. The subquery is then removed, and the parent query is transformed into a multi-table join.

This rewriting enables the optimizer to consider tables in the subquery during path selection, join method determination, and join order arrangement, thereby helping it generate better execution plans. Subqueries of the following types are involved: NOT IN, IN, NOT EXISTS, EXISTS, ANY, and ALL.

The subquery can be rewritten in the following ways:

  • Rewrite the condition so that the generated join statement can return the same rows as the original statement.

  • Rewrite it into a semi join or anti join.

    Take a look at the following example. Since c2 in table t2 does not have uniqueness, the statement is rewritten into a semi join, and the execution plan is as follows:

    obclient> CREATE TABLE t1 (c1 INT, c2 INT);
    Query OK, 0 rows affected 
    
    obclient> CREATE TABLE t2 (c1 INT PRIMARY KEY, c2 INT);
    Query OK, 0 rows affected 
    
    obclient> EXPLAIN SELECT * FROM t1 WHERE t1.c1 IN (SELECT t2.c2 FROM t2);
    
    Query Plan: 
    =======================================
    |ID|OPERATOR      |NAME|EST. ROWS|COST|
    ---------------------------------------
    |0 |HASH SEMI JOIN|    |495      |3931|
    |1 | TABLE SCAN   |t1  |1000     |499 |
    |2 | TABLE SCAN   |t2  |1000     |433 |
    =======================================
    
    Outputs & filters:
    -------------------------------------
      0 - output([t1.c1], [t1.c2]), filter(nil),
          equal_conds([t1.c1 = t2.c2]), other_conds(nil)
      1 - output([t1.c1], [t1.c2]), filter(nil),
          access([t1.c1], [t1.c2]), partitions(p0)
      2 - output([t2.c2]), filter(nil),
          access([t2.c2]), partitions(p0)
    

    If you change the NOT IN condition at the front of the query into an IN condition, the statement can be rewritten into an anti join, and the execution plan is as follows:

    obclient> EXPLAIN SELECT * FROM t1 WHERE t1.c1 NOT IN (SELECT t2.c2 FROM t2);
    
    Query Plan:
    ================================================
    |ID|OPERATOR             |NAME|EST. ROWS|COST  |
    ------------------------------------------------
    |0 |NESTED-LOOP ANTI JOIN|    |0        |520245|
    |1 | TABLE SCAN          |t1  |1000     |499   |
    |2 | TABLE SCAN          |t2  |22       |517   |
    ================================================
    
    Outputs & filters:
    -------------------------------------
      0 - output([t1.c1], [t1.c2]), filter(nil),
          conds(nil), nl_params_([t1.c1], [(T_OP_IS, t1.c1, NULL, 0)])
      1 - output([t1.c1], [t1.c2], [(T_OP_IS, t1.c1, NULL, 0)]), filter(nil),
          access([t1.c1], [t1.c2]), partitions(p0)
      2 - output([t2.c2]), filter([(T_OP_OR, ? = t2.c2, ?, (T_OP_IS, t2.c2, NULL, 0))]),
          access([t2.c2]), partitions(p0)
    
  • Rewrite it into an inner join

    Take a look at the preceding example. In query Q1, if you change c2 into c1 in table t2, since c1 is the primary key and the join output is unique, you can directly rewrite the subquery into an inner join, as shown below:

    Q1: 
    obclient> SELECT * FROM t1 WHERE t1.c1 IN  (SELECT t2.c1 FROM t2);
    <==>
    Q2: 
    obclient> SELECT t1.* FROM t1, t2 WHERE t1.c1 = t2.c1;
    

    After Q1 is rewritten, the execution plan is as follows:

    obclient> EXPLAIN SELECT * FROM t1 WHERE t1.c1 IN (SELECT t2.c1 FROM t2);
    
    Query Plan:
     ====================================
    |ID|OPERATOR   |NAME|EST. ROWS|COST|
    ------------------------------------
    |0 |HASH JOIN  |    |1980     |3725|
    |1 | TABLE SCAN|t2  |1000     |411 |
    |2 | TABLE SCAN|t1  |1000     |499 |
    ====================================
    
    Outputs & filters:
    -------------------------------------
      0 - output([t1.c1], [t1.c2]), filter(nil),
          equal_conds([t1.c1 = t2.c1]), other_conds(nil)
      1 - output([t2.c1]), filter(nil),
          access([t2.c1]), partitions(p0)
      2 - output([t1.c1], [t1.c2]), filter(nil),
          access([t1.c1], [t1.c2]), partitions(p0)
    

    You can perform similar rewriting operations on subqueries of the NOT IN, IN, NOT EXISTS, EXISTS, ANY, and ALL types.

Rewrite using MAX/MIN after converting ANY/ALL

You can convert the subquery in an ANY/ALL condition into a subquery containing MAX/MIN if the subquery does not contain a GROUP BY clause, aggregate functions, or a HAVING condition. In this case, col_item in the following expression must be a single column with the NULL attribute:

val > ALL(SELECT col_item ...)  <==> val > (SELECT MAX(col_item) ...);
val >= ALL(SELECT col_item ...) <==> val >= (SELECT MAX(col_item) ...);
val < ALL(SELECT col_item ...)  <==> val < (SELECT MIN(col_item) ...);
val <= ALL(SELECT col_item ...) <==> val <= (SELECT MIN(col_item) ...);
val > ANY(SELECT col_item ...)  <==> val > (SELECT MIN(col_item) ...);
val >= ANY(SELECT col_item ...) <==> val >= (SELECT MIN(col_item) ...);
val < ANY(SELECT col_item ...)  <==> val < (SELECT MAX(col_item) ...);
val <= ANY(SELECT col_item ...) <==> val <= (SELECT MAX(col_item) ...);

After you convert the subquery into a subquery containing MAX/MIN, you can apply MAX/MIN to the subquery to reduce the number of scans of the inner table before the conversion. Here is an example:

obclient> SELECT c1 FROM t1 WHERE c1 > ANY(SELECT c1 FROM t2);
<==>
obclient> SELECT c1 FROM t1 WHERE c1 > (SELECT MIN(c1) FROM t2);

After you apply MAX/MIN to the subquery, you can push the LIMIT 1 condition directly down to the TABLE SCAN operation based on the primary key order of t2.c1, and output the minimum value. The execution plan is as follows:

obclient> EXPLAIN SELECT c1 FROM t1 WHERE c1 > ANY(SELECT c1 FROM t2);

Query Plan:
 ===================================================
|ID|OPERATOR        |NAME          |EST. ROWS|COST|
---------------------------------------------------
|0 |SUBPLAN FILTER  |              |1        |73  |
|1 | TABLE SCAN     |t1            |1        |37  |
|2 | SCALAR GROUP BY|              |1        |37  |
|3 |  SUBPLAN SCAN  |subquery_table|1        |37  |
|4 |   TABLE SCAN   |t2            |1        |36  |
===================================================

Outputs & filters:
-------------------------------------
  0 - output([t1.c1]), filter([t1.c1 > ANY(subquery(1))]),
      exec_params_(nil), onetime_exprs_(nil), init_plan_idxs_([1])
  1 - output([t1.c1]), filter(nil),
      access([t1.c1]), partitions(p0)
  2 - output([T_FUN_MIN(subquery_table.c1)]), filter(nil),
      group(nil), agg_func([T_FUN_MIN(subquery_table.c1)])
  3 - output([subquery_table.c1]), filter(nil),
      access([subquery_table.c1])
  4 - output([t2.c1]), filter(nil),
      access([t2.c1]), partitions(p0),
      limit(1), offset(nil)

Elimination of outer joins

Outer joins can be left outer joins, right outer joins, and full outer joins. The optimizer cannot freely exchange the order of outer joins, which limits the possible join orders. Elimination of outer joins converts outer joins into inner joins, offering more join orders to the optimizer.

To eliminate an outer join, a "null value rejecting condition" must be met, namely, a WHERE condition exists where the output result is FALSE when a value generated by the inner table is NULL.

Here is an example:

obclient>SELECT t1.c1, t2.c2 FROM t1 LEFT JOIN t2 ON t1.c2 = t2.c2;

This query statement contains an outer join. The value of t2.c2 in the output result set of the join can be NULL. If a condition t2.c2 > 5 is added, the join result set after the condition is filtered contains no NULL value in the t2.c1 column. In this case, the outer join can be converted into an inner join.

obclient> SELECT t1.c1, t2.c2 FROM t1 LEFT JOIN t2 ON t1.c2 = t2.c2 WHERE t2.c2 > 5;
<==>
obclient> SELECT t1.c1, t2.c2 FROM t1 INNER JOIN t2 ON t1.c2 = t2.c2 
            WHERE t2.c2 > 5;

Simplify conditions

Elimination of the HAVING condition

If the query does not contain an aggregate operation or a GROUP BY clause, the HAVING condition can be combined with the WHERE condition, and the HAVING clause can be removed. This way, the HAVING condition can be managed and optimized as part of the WHERE condition.

obclient>SELECT * FROM t1, t2 WHERE t1.c1 = t2.c1 HAVING t1.c2 > 1;
<==>
obclient>SELECT * FROM t1, t2 WHERE t1.c1 = t2.c1 AND t1.c2 > 1;

The following example shows the execution plan after the HAVING condition is eliminated. The t1.c2 > 1 condition is pushed down to the TABLE SCAN layer.

obclient> EXPLAIN SELECT * FROM t1, t2 WHERE t1.c1 = t2.c1 HAVING t1.c2 > 1;

Query Plan: 
=========================================
|ID|OPERATOR        |NAME|EST. ROWS|COST|
-----------------------------------------
|0 |NESTED-LOOP JOIN|    |1        |59  |
|1 | TABLE SCAN     |t1  |1        |37  |
|2 | TABLE GET      |t2  |1        |36  |
=========================================

Outputs & filters:
-------------------------------------
  0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil),
      conds(nil), nl_params_([t1.c1])
  1 - output([t1.c1], [t1.c2]), filter([t1.c2 > 1]),
      access([t1.c1], [t1.c2]), partitions(p0)
  2 - output([t2.c1], [t2.c2]), filter(nil),
      access([t2.c1], [t2.c2]), partitions(p0)

Derivation of equivalent conditions

Based on the transitivity of comparison operators, new conditions can be derived. This reduces the number of rows to be processed or helps select a more efficient index.

OceanBase Database can derive equivalent conditions for value-based joins. For example, in a table that contains the a and b columns, the condition a = b AND a > 1 can be derived into a = b AND a > 1 AND b > 1. If an index exists on the b column and the selectivity of the b > 1 condition is low for the index, the performance of accessing the table for the b column can be significantly improved.

Consider the condition t1.c1 = t2.c2 AND t1.c1 > 2. After equivalent condition derivation, it becomes t1.c1 = t2.c2 AND t1.c1 > 2 AND t2.c2 > 2. As you can see in the plan below, the t2.c2 > 2 condition is pushed down to the TABLE SCAN layer and the t2.c2 column uses the index on the t2.c2 column.

obclient> CREATE TABLE t1(c1 INT PRIMARY KEY, c2 INT);
Query OK, 0 rows affected

obclient> CREATE TABLE t2(c1 INT PRIMARY KEY, c2 INT, c3 INT, KEY IDX_c2(c2));
Query OK, 0 rows affected
/*This command needs to be run in MySQL mode.*/

obclient> EXPLAIN EXTENDED_NOADDR SELECT t1.c1, t2.c2 FROM t1, t2 WHERE t1.c1 = t2.c2 AND t1.c1 > 2;

Query Plan:
==========================================
|ID|OPERATOR   |NAME      |EST. ROWS|COST|
------------------------------------------
|0 |MERGE JOIN |          |5        |78  |
|1 | TABLE SCAN|t2(IDX_c2)|5        |37  |
|2 | TABLE SCAN|t1        |3        |37  |
==========================================

Outputs & filters:
-------------------------------------
  0 - output([t1.c1], [t2.c2]), filter(nil),
      equal_conds([t1.c1 = t2.c2]), other_conds(nil)
  1 - output([t2.c2]), filter(nil),
      access([t2.c2]), partitions(p0),
      is_index_back=false,
      range_key([t2.c2], [t2.c1]), range(2,MAX ; MAX,MAX),
      range_cond([t2.c2 > 2])
  2 - output([t1.c1]), filter(nil),
      access([t1.c1]), partitions(p0),
      is_index_back=false,
      range_key([t1.c1]), range(2 ; MAX),
      range_cond([t1.c1 > 2])

Elimination of tautologies and contradictions

You can eliminate tautologies and contradictions:

  • false and expr = Always False

  • true or expr = Always True

As shown in the following example, for the WHERE 0 > 1 AND c1 = 3 condition, since 0 > 1 is a contradiction, the AND condition is always false. Therefore, the SQL query does not need to be executed. Instead, it can directly return the result, thus accelerating the query.

obclient> EXPLAIN EXTENDED_NOADDR SELECT * FROM t1 WHERE 0 > 1 AND c1 = 3;

Query Plan: 
===================================
|ID|OPERATOR  |NAME|EST. ROWS|COST|
-----------------------------------
|0 |TABLE SCAN|t1  |0        |38  |
===================================

Outputs & filters:
-------------------------------------
  0 - output([t1.c1], [t1.c2]), filter([0], [t1.c1 = 3]), startup_filter([0]),
      access([t1.c1], [t1.c2]), partitions(p0),
      is_index_back=false, filter_before_indexback[false,false],
      range_key([t1.__pk_increment], [t1.__pk_cluster_id], [t1.__pk_partition_id]),
      range(MAX,MAX,MAX ; MIN,MIN,MIN)always false

Non-SJP rewriting

Elimination of redundant sorts

Elimination of redundant sorts is the process of removing unnecessary items from the order item list in an ORDER BY clause to reduce the sorting overhead. In the following three scenarios, redundant sorts can be eliminated:

  • The ORDER BY clause contains duplicate columns. In this case, the columns can be sorted after duplicates are removed.

    obclient> SELECT * FROM t1 WHERE c2 = 5 ORDER BY c1, c1, c2, c3 ;
    <==>
    obclient> SELECT * FROM t1 WHERE c2 = 5 ORDER BY c1, c2, c3;
    
  • The WHERE condition contains a single-valued condition on a column in the ORDER BY clause. In this case, the column can be sorted.

    obclient> SELECT * FROM t1 WHERE c2 = 5 ORDER BY c1, c2, c3;
    <==>
    obclient> SELECT * FROM t1 WHERE c2 = 5 ORDER BY c1, c3;
    
  • If the current query has an ORDER BY clause but no LIMIT clause and is located within a set operation of a parent query, the ORDER BY clause of the current query can be eliminated. The reason is that the result of a UNION operation on two ordered sets is unordered. However, if the ORDER BY clause contains a LIMIT clause, it means that the first or last N records are to be obtained. In this case, the ORDER BY clause cannot be eliminated to avoid semantic errors.

    obclient> (SELECT c1,c2 FROM t1 ORDER BY c1) UNION (SELECT c3,c4 FROM t2 ORDER BY c3);
    <==>
    obclient> (SELECT c1,c2 FROM t1) UNION (SELECT c3,c4 FROM t2);
    

Pushdown of LIMIT to subqueries

Limit pushdown is the process of moving the LIMIT clause to a subquery. OceanBase Database now supports pushing down the LIMIT clause to a view (example 1) or a subquery corresponding to the UNION operation (example 2) without changing the semantics.

Example 1: Push the LIMIT clause to a view.

obclient> SELECT * FROM (SELECT * FROM t1 ORDER BY c1) a LIMIT 1; 
<==>
obclient> SELECT * FROM (SELECT * FROM t1 ORDER BY c1 LIMIT 1) a LIMIT 1;

Example 2: Push the LIMIT clause to a subquery corresponding to the UNION operation.

obclient> (SELECT c1,c2 FROM t1) UNION ALL (SELECT c3,c4 FROM t2) LIMIT 5;
<==>
obclient> (SELECT c1,c2 FROM t1 LIMIT 5) UNION ALL (SELECT c3,c4 FROM t2 limit 5) LIMIT 5;

Pushdown of LIMIT to outer or cross joins

If the SQL query statement does not contain WINDOW FUNCTION, DISTINCT, GROUP BY, or HAVING, and the WHERE condition or ORDER BY clause applies to only one side of the join or does not contain WHERE and ORDER BY, the LIMIT clause can be pushed down to one side (outer join) or both sides (cross join) of the join. This process is called pushing down the LIMIT clause to outer joins or cross joins. By pushing down the LIMIT clause, the number of rows returned by the join can be reduced, thereby lowering the execution overheads of queries.

For outer joins, a view is created on the table to which the LIMIT clause is pushed down. For example, in the following Q1 query statement, which is a left outer join, a view V is created on the t1 table:

Q1:
SELECT * FROM t1 LEFT JOIN t2 ON t1.c1 = t2.c1 LIMIT 1;
==>
Q2:
SELECT * FROM V LEFT JOIN t2 ON t1.c1 = t2.c1 LIMIT 1;
V: (SELECT * FROM t1 LIMIT 1);

If the Q1 query statement meets the aforementioned conditions, the LIMIT 1 clause can be pushed down to the t1 table to generate the Q2 query statement. Note that the original LIMIT clause must be retained after the LIMIT clause is pushed down. The execution plan before and after the pushdown is as follows:

=============================================
|ID|OPERATOR         |NAME   |EST. ROWS|COST|
---------------------------------------------
|0 |LIMIT            |       |1        |4   |
|1 | MERGE OUTER JOIN|       |1        |4   |
|2 |  SUBPLAN SCAN   |VIEW1  |1        |2   |
|3 |   TABLE SCAN    |t1(idx)|1        |2   |
|4 |  SORT           |       |1        |2   |
|5 |   TABLE SCAN    |t2     |1        |2   |
=============================================
Outputs & filters: 
-------------------------------------
0 - output([1]), filter(nil), rowset=256, limit(1), offset(nil)
1 - output(nil), filter(nil), rowset=256, 
equal_conds([VIEW1.t1.c1 = t2.c1]), other_conds(nil)
2 - output([VIEW1.t1.c1]), filter(nil), rowset=256, 
access([VIEW1.t1.c1])
3 - output([t1.c1]), filter(nil), rowset=256, 
access([t1.c1]), partitions(p0), 
limit(1), offset(nil)
4 - output([t2.c1]), filter(nil), rowset=256, sort_keys([t2.c1, ASC])
5 - output([t2.c1]), filter(nil), rowset=256, 
access([t2.c1]), partitions(p0)

The same operation can be performed on right outer joins under the aforementioned conditions.

For cross joins, the LIMIT clause can be pushed down to both sides of the join. Here is an example:

Q3:
SELECT 1 FROM t1, t2 WHERE t1.c1 > 0 ORDER BY t1.c1 LIMIT 1;
==>
Q4:
SELECT 1 FROM V1, V2 LIMIT 1;
V1: SELECT 1 FROM t1 WHERE t1.c1 > 0 ORDER BY t1.c1 LIMIT 1; 
V2: SELECT 1 FROM t2 LIMIT 1; 

Q3 query statement contains no limitations for limit pushdown to outer joins, and contains only the WHERE condition and ORDER BY clause on the t1 table. Therefore, views V1 and V2 can be created on the t1 and t2 tables, respectively, and the LIMIT clause can be pushed down to the views to generate the Q4 query statement. Note that the original LIMIT clause must be retained after the LIMIT clause is pushed down. The execution plan before and after the pushdown is as follows:

=====================================================
|ID|OPERATOR                   |NAME |EST. ROWS|COST|
-----------------------------------------------------
|0 |LIMIT                      |     |1        |5   |
|1 | NESTED-LOOP JOIN CARTESIAN|     |1        |5   |
|2 |  SUBPLAN SCAN             |VIEW1|1        |3   |
|3 |   TOP-N SORT              |     |1        |3   |
|4 |    TABLE SCAN             |t1   |3        |3   |
|5 |  MATERIAL                 |     |1        |2   |
|6 |   SUBPLAN SCAN            |VIEW2|1        |2   |
|7 |    TABLE SCAN             |t2   |1        |2   |
=====================================================
Outputs & filters: 
-------------------------------------
  0 - output([1]), filter(nil), rowset=256, limit(1), offset(nil)
  1 - output(nil), filter(nil), rowset=256, 
      conds(nil), nl_params_(nil)
  2 - output(nil), filter(nil), rowset=256, 
      access(nil)
  3 - output([t1.c1]), filter(nil), rowset=256, sort_keys([t1.c1, ASC]), topn(1)
  4 - output([t1.c1]), filter([t1.c1 > 0]), rowset=256, 
      access([t1.c1]), partitions(p0)
  5 - output(nil), filter(nil), rowset=256
  6 - output(nil), filter(nil), rowset=256, 
      access(nil)
  7 - output([1]), filter([t2.c1 > 0]), rowset=256, 
      access([t2.c1]), partitions(p0), 
      limit(1), offset(nil)

For SQL queries with multiple tables joined, the preceding outer join and cross join can be applied to the LIMIT clause each time or multiple times based on the conditions to expand the rewrite space and achieve better rewrite results.

Elimination of DISTINCT

  • If the Select Item contains only constants, you can eliminate the DISTINCT clause and add the LIMIT 1 clause.

    obclient> SELECT DISTINCT 1,2 FROM t1 ;
    <==> 
    obclient> SELECT 1,2 FROM t1 LIMIT 1;
    
    obclient> CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 INT);
    Query OK, 0 rows affected 
    
    obclient> EXPLAIN EXTENDED_NOADDR SELECT DISTINCT 1,2 FROM t1;
    
    Query Plan: 
    ===================================
    |ID|OPERATOR  |NAME|EST. ROWS|COST|
    -----------------------------------
    |0 |TABLE SCAN|t1  |1        |36  |
    ===================================
    
    Outputs & filters:
    -------------------------------------
      0 - output([1], [2]), filter(nil),
          access([t1.c1]), partitions(p0),
          limit(1), offset(nil),
          is_index_back=false,
          range_key([t1.c1]), range(MIN ; MAX)always true
    
  • If the Select Item contains a column that enforces a uniqueness constraint, you can eliminate the DISTINCT clause. In the following example, (c1, c2) is the primary key and enforces the uniqueness of c1, c2, and c3.

    obclient> CREATE TABLE t2(c1 INT, c2 INT, c3 INT, PRIMARY KEY(c1, c2));
    Query OK, 0 rows affected 
    
    obclient> SELECT DISTINCT c1, c2, c3 FROM t2;
    <==>
    obclient> SELECT c1, c2 c3 FROM t2;
    
    obclient> EXPLAIN SELECT DISTINCT c1, c2, c3 FROM t2;
    
    Query Plan: 
    ===================================
    |ID|OPERATOR  |NAME|EST. ROWS|COST|
    -----------------------------------
    |0 |TABLE SCAN|t2  |1000     |455 |
    ===================================
    
    Outputs & filters:
    -------------------------------------
      0 - output([t2.c1], [t2.c2], [t2.c3]), filter(nil),
          access([t2.c1], [t2.c2], [t2.c3]), partitions(p0)
    

Rewriting of MIN/MAX

  • If the parameter of the MIN/MAX function is a prefix column of an index and does not contain the GROUP BY clause, you can convert the scalar aggregate into an index scan that reads only one row, as shown in the following example:

    obclient> CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 INT, c3 INT, KEY IDX_c2_c3(c2,c3));
    Query OK, 0 rows affected 
    
    obclient> SELECT MIN(c2) FROM t1;
    <==>
    obclient> SELECT MIN(c2) FROM (SELECT c2 FROM t1 ORDER BY c2 LIMIT 1) AS t;
    
    obclient> EXPLAIN SELECT MIN(c2) FROM t1;
    
    Query Plan: 
    ==================================================
    |ID|OPERATOR       |NAME          |EST. ROWS|COST|
    --------------------------------------------------
    |0 |SCALAR GROUP BY|              |1        |37  |
    |1 | SUBPLAN SCAN  |subquery_table|1        |37  |
    |2 |  TABLE SCAN   |t1(idx_c2_c3) |1        |36  |
    ==================================================
    
    Outputs & filters:
    -------------------------------------
      0 - output([T_FUN_MIN(subquery_table.c2)]), filter(nil),
          group(nil), agg_func([T_FUN_MIN(subquery_table.c2)])
      1 - output([subquery_table.c2]), filter(nil),
          access([subquery_table.c2])
      2 - output([t1.c2]), filter([(T_OP_IS_NOT, t1.c2, NULL, 0)]),
          access([t1.c2]), partitions(p0),
          limit(1), offset(nil)
    
  • If the parameter of the SELECT MIN/SELECT MAX statement is a constant and contains the GROUP BY clause, you can replace the MIN/MAX function with a constant to reduce the computation overhead of the MIN/MAX function.

    obclient> SELECT MAX(1) FROM t1 GROUP BY c1;
    <==>
    obclient> SELECT 1 FROM t1 GROUP BY c1;
    
    obclient> EXPLAIN EXTENDED_NOADDR SELECT MAX(1) FROM t1 GROUP BY c1;
    
    Query Plan: 
    ===================================
    |ID|OPERATOR  |NAME|EST. ROWS|COST|
    -----------------------------------
    |0 |TABLE SCAN|t1  |1000     |411 |
    ===================================
    
    Outputs & filters:
    -------------------------------------
      0 - output([1]), filter(nil),
          access([t1.c1]), partitions(p0),
          is_index_back=false,
          range_key([t1.c1]), range(MIN ; MAX)always true
    
  • If the parameter of the SELECT MIN/SELECT MAX statement is a constant and does not contain the GROUP BY clause, you can rewrite the statement as shown in the following example to scan only one row during an index scan.

    obclient> SELECT MAX(1) FROM t1;
    <==> 
    obclient> SELECT MAX(t.a) FROM (SELECT 1 AS a FROM t1 LIMIT 1) t;
    
    obclient> EXPLAIN EXTENDED_NOADDR SELECT MAX(1) FROM t1;
    
    Query Plan: 
    ==================================================
    |ID|OPERATOR       |NAME          |EST. ROWS|COST|
    --------------------------------------------------
    |0 |SCALAR GROUP BY|              |1        |37  |
    |1 | SUBPLAN SCAN  |subquery_table|1        |37  |
    |2 |  TABLE SCAN   |t1            |1        |36  |
    ==================================================
    
    Outputs & filters:
    -------------------------------------
      0 - output([T_FUN_MAX(subquery_table.subquery_col_alias)]), filter(nil),
          group(nil), agg_func([T_FUN_MAX(subquery_table.subquery_col_alias)])
      1 - output([subquery_table.subquery_col_alias]), filter(nil),
          access([subquery_table.subquery_col_alias])
      2 - output([1]), filter(nil),
          access([t1.c1]), partitions(p0),
          limit(1), offset(nil),
          is_index_back=false,
          range_key([t1.c1]), range(MIN ; MAX)always true
    

Previous topic

Overview
Last

Next topic

Cost-based query rewrite
Next
What is on this page
Subquery rewriting
View merging
Subquery expansion
Rewrite using MAX/MIN after converting ANY/ALL
Elimination of outer joins
Simplify conditions
Elimination of the HAVING condition
Derivation of equivalent conditions
Elimination of tautologies and contradictions
Non-SJP rewriting
Elimination of redundant sorts
Pushdown of LIMIT to subqueries
Pushdown of LIMIT to outer or cross joins
Elimination of DISTINCT
Rewriting of MIN/MAX