首批通过分布式安全可靠测评,为关键业务系统打造
DISPLAY_CURSOR
更新时间:2026-04-15 20:46:29
DISPLAY_CURSOR 函数用于用于展示已执行的查询计划详情。
功能适用性
OceanBase 数据库社区版从 V4.2.5 版本开始支持该功能。
语法
DBMS_XPLAN.DISPLAY_CURSOR(plan_id DECIMAL DEFAULT 0, -- default value: last plan
format VARCHAR(32) DEFAULT 'TYPICAL',
svr_ip VARCHAR(64) DEFAULT null, -- default value: server connected by client
svr_port DECIMAL DEFAULT 0, -- default value: server connected by client
tenant_id DECIMAL DEFAULT 0, -- default value: current tenant
sql_handle VARCHAR(32) DEFAULT NULL,
plan_name VARCHAR(32) DEFAULT NULL
)
RETURN DBMS_XPLAN_TYPE_TABLE;
参数解释
| 参数 | 说明 |
|---|---|
| plan_id | 执行计划的 ID。如果不指定,则使用上一次执行的计划。 |
| format | 指定计划格式信息,可选参数如下:
|
| svr_ip | 计划所在的节点 IP,默认是 Session 连接的节点 IP。 |
| svr_port | 计划所在的节点端口号,默认是 Session 连接的节点端口号。 |
| tenant_id | 计划所属租户 ID,默认是 Session 当前连接的租户。 |
| sql_handle | 执行计划用于标识 SQL 语句的句柄(Handle)。当查询某条 SQL 语句的特定执行计划时,在存在多条相似 SQL 时,可通过 sql_handle 精准指定目标语句。 |
| plan_name | 执行计划的名称。 |
示例
MySQL 租户由于没有 Function Table 功能,可以直接在 SELECT 语句里面使用 DISPLAY_CURSOR 函数输出计划信息。
创建表。
obclient [test]> CREATE TABLE t1(c1 INT);执行查询。
obclient [test]> SELECT * FROM t1;使用
DBMS_XPLAN包查看历史计划。不指定参数查询。
obclient [test]> SELECT DBMS_XPLAN.DISPLAY_CURSOR() ;查询结果如下:
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DBMS_XPLAN.DISPLAY_CURSOR() | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ================================================================================================ |ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|REAL.ROWS|REAL.TIME(us)|IO TIME(us)|CPU TIME(us)| ------------------------------------------------------------------------------------------------ |0 |TABLE FULL SCAN|t1 |1 |4 |0 |0 |0 |155 | ================================================================================================ Outputs & filters: ------------------------------------- 0 - output([t1.c1]), filter(nil), rowset=16 access([t1.c1]), partitions(p0) is_index_back=false, is_global_index=false, range_key([t1.__pk_increment]), range(MIN ; MAX)always true | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.173 sec)指定参数查询。
obclient [test]> SELECT DBMS_XPLAN.DISPLAY_CURSOR(294, 'typical', 'xx.xx.xx.xx', 2828, 1002, '07E5B378A3CD3778A58E18DB9AD2A430', '7420493073239164301') FROM DUAL;查询结果如下:
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DBMS_XPLAN.DISPLAY_CURSOR( 294, 'typical', 'xx.xx.xx.xx', 2828, 1002, '07E5B378A3CD3778A58E18DB9AD2A430', '7420493073239164301' ) | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.005 sec)