查看 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。