查看 SQL 执行详情

查看一条 SQL 执行记录的完整信息,用于确认语句内容、执行状态、耗时和错误信息。默认只查看当前身份执行的记录;具备相应权限时,可以查看工作区范围的记录。

POST https://moi.matrixorigin.cn/newmoi/query/detail

调用前准备

准备有当前工作区访问权限的个人访问令牌当前工作区 ID。先查看 SQL 执行记录,选择需要分析的记录并记下其语句 ID 和执行时间。

请求示例

以下示例读取指定语句在一分钟时间窗口内的执行详情。

curl -X POST "https://moi.matrixorigin.cn/newmoi/query/detail" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d '{
    "statement_id": "'"$STATEMENT_ID"'",
    "start": "2026-08-26 09:44:00",
    "end": "2026-08-26 09:46:00"
  }'

请求体

参数

类型

是否必填

说明

statement_id

string

所选 SQL 执行记录的语句 ID。

start

string

查询开始时间,格式为 YYYY-MM-DD HH:MM:SS。

end

string

查询结束时间,格式为 YYYY-MM-DD HH:MM:SS。

scope

string

查看当前身份或当前工作区的记录。

查看范围

scope 值

可查看的记录

权限条件

self

当前身份的记录。

默认范围。

workspace

工作区范围的记录。

需要工作区审计读取权限。

指定查询时间范围

开始和结束时间必须同时填写,并覆盖所选记录的执行时间。当前接口使用不含时区的“年-月-日 时:分:秒”格式;列表显示的时间包含时区,填写前需转换为上述格式。例如,列表显示 2026-08-26T09:45:35Z 时,可使用覆盖该时刻的 2026-08-26 09:44:00 至 2026-08-26 09:46:00 时间范围。

使用所选执行记录

将所选记录的语句 ID 填入语句 ID 字段,并使用覆盖该记录执行时间的时间范围填写开始和结束时间字段。

成功响应

成功时返回 HTTP 200。范围内没有匹配记录时,data 为 null;这不表示语句执行失败。

{
  "code": "OK",
  "msg": "OK",
  "data": {
    "statement_id": "5c6f22fb-ef0e-4f46-b06f-c31e1a7afb48",
    "transaction_id": "txn-01",
    "session_id": "session-01",
    "account": "acc01",
    "user": "analyst",
    "host": "127.0.0.1",
    "database": "analytics",
    "statement": "SELECT 1 AS n",
    "status": "Success",
    "query_type": "DQL",
    "statement_type": "Select",
    "sql_source_type": "cloud_user_sql",
    "request_at": "2026-08-26T09:45:35Z",
    "response_at": "2026-08-26T09:45:36Z",
    "duration": 1000000,
    "result_count": 1
  }
}

响应字段如下。

字段

类型

说明

code

string

成功时为 OK。

msg

string

成功时为 OK。

data

object

匹配的执行记录;没有匹配记录时为 null。

data.statement_id

string

语句 ID。

data.transaction_id

string

事务 ID。

data.session_id

string

会话 ID。

data.account

string

执行所用账户。

data.user

string

执行用户。

data.host

string

执行主机。

data.database

string

执行时使用的数据库。

data.statement

string

SQL 语句文本。

data.statement_tag

string

语句标签。

data.statement_fingerprint

string

语句指纹。

data.node_uuid

string

执行节点 UUID。

data.node_type

string

执行节点类型。

data.request_at

string

开始执行时间。

data.response_at

string

结束执行时间。

data.duration

unsigned integer

执行时长,单位为纳秒。

data.status

string

执行状态。

data.error_code

string

错误代码。

data.error

string

错误信息。

data.exec_plan

string

已保存的执行计划。

data.rows_read

unsigned integer

读取行数。

data.bytes_scan

unsigned integer

扫描字节数。

data.statement_type

string

语句类型。

data.query_type

string

语句类别。

data.role_id

unsigned integer

执行角色 ID。

data.sql_source_type

string

SQL 来源类型。

data.result_count

integer

结果行数。

data.cu

number

容量使用量。

data.connection_id

integer

数据库连接 ID。

可选字段未记录时不会返回。

错误响应

错误响应使用 code、msg 和 data 包络,data 为 null。msg 为服务端返回的本地化公共错误信息,不应依赖其文本进行程序判断。

{
  "code": "ErrParamInvalid",
  "msg": "请求参数无效",
  "data": null
}

常见 HTTP 错误

HTTP 状态码

错误代码

常见原因

建议操作

400

ErrParamInvalid

请求体不是合法 JSON;缺少 statement_id、start 或 end;或 scope 不是 self 或 workspace。

补齐必填字段,并确认 scope 后重新提交。

403

ErrForbidden

当前身份没有读取所选范围 SQL 执行记录的权限。

使用具有所需工作区读取权限的凭据,或改为默认的 self 范围。

500

ErrServer

时间范围不是 YYYY-MM-DD HH:MM:SS 格式,或服务无法完成详情查询。

将 start 和 end 改为 YYYY-MM-DD HH:MM:SS 后重试;持续出现时联系支持人员。

后续操作

需要查看执行计划时,使用相同的语句 ID 和时间范围查看 SQL 执行计划。如需重新执行,确认 SQL 内容、目标数据库和当前身份权限后,使用执行 SQL

最后更新于