首批通过分布式安全可靠测评,为关键业务系统打造
DISPLAY_CURSOR
更新时间:2026-04-10 11:58:36
DISPLAY_CURSOR 函数用于用于展示已执行的查询计划详情。
函数定义
DBMS_XPLAN.DISPLAY_CURSOR(plan_id INTEGER DEFAULT 0, -- default value: last plan
format VARCHAR2 DEFAULT 'TYPICAL',
svr_ip VARCHAR2 DEFAULT null, -- default value: server connected by client
svr_port INTEGER DEFAULT 0, -- default value: server connected by client
tenant_id INTEGER DEFAULT 0 -- default value: current tenant
)
RETURN DBMS_XPLAN_TYPE_TABLE;
参数说明
| 参数 | 说明 |
|---|---|
| plan_id | 执行计划的 ID。如果不指定,则使用上一次执行的计划。 |
| format | 指定计划格式信息,可选参数如下:
|
| svr_ip | 计划所在的节点 IP,默认是 Session 连接的节点 IP。 |
| svr_port | 计划所在的节点端口号,默认是 Session 连接的节点端口号。 |
| tenant_id | 计划所属租户 ID,默认是 Session 当前连接的租户。 |
示例
MySQL 租户由于没有 Function Table 功能,可以直接在 SELECT 语句里面使用 DISPLAY_CURSOR 函数输出计划信息。
/* 创建表 */
obclient> CREATE TABLE t1(c1 INT);
Query OK, 0 rows affected
/* 执行查询 */
obclient> SELECT * FROM t1;
Empty set
/* 使用 DBMS_XPLAN 包查看历史计划 */
obclient> SELECT DBMS_XPLAN.DISPLAY_CURSOR() ;
+--------------------------------------------------------------------------------------------------+
| COLUMN_VALUE |
+--------------------------------------------------------------------------------------------------+
| ================================================================================================ |
| |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 |2 |0 |0 |0 |0 | |
| ================================================================================================ |
| Outputs & filters: |
| ------------------------------------- |
| 0 - output([T1.C1]), filter(nil), rowset=256 |
| access([T1.C1]), partitions(p0) |
| is_index_back=false, is_global_index=false, |
| range_key([T1.__pk_increment]), range(MIN ; MAX)always true |
+--------------------------------------------------------------------------------------------------+
/* 也可以指定(tenant_id, svr_ip, svr_port, plan_id)四元组查询指定计划信息 */
obclient> SELECT DBMS_XPLAN.DISPLAY_CURSOR(
123,
'typical',
'127.0.0.1',
2828,
1002
) FROM DUAL;
+--------------------------------------------------------------------------------+
| dbms_xplan.display_cursor(
123,
'typical',
'127.x.x.1',
2828,
1002
) |
+--------------------------------------------------------------------------------+
| |
+--------------------------------------------------------------------------------+
1 row in set