SQL Trace
SQL Trace 是 DolphinDB 提供的一套函数工具,它能够通过跟踪 SQL 脚本的执行过程,分析复杂 SQL 查询的内部耗时,以达到定位问题并优化执行的目的。
setTraceMode
函数用于开启或关闭 SQL Trace。一次完整的跟踪流程必须以
setTraceMode(true)
作为开启标识,并以 setTraceMode(false)
作为结束标识。需要注意的是,DolphinDB 从开启跟踪功能后接收到的第一次请求开始跟踪。因此, setTraceMode
命令必须单独执行,而不能和待跟踪的语句放在同一脚本中一起执行。
开启跟踪后,可以通过调用getTraces()
函数来获取一张包含跟踪信息的表。这张表记录了客户端将脚本发送给服务器的时间戳、客户端发送给服务器端执行的脚本、记录SQL Trace信息的 id 和发起 SQL Trace
的会话的 id。
例如,下面的脚本展示了一次完整的 SQL Trace
跟踪流程。
setTraceMode(true)
go
select * from loadTable("dfs://S_SEC_INFO", "S_SEC_INFO")
setTraceMode(false)
使用getTraces()
函数得到的跟踪信息如下图所示。

此外,使用 viewTraceInfo(traceId, [isTreeView = true])
还可以展示某个 traceId
对应脚本的跟踪信息。例如,要查看上面执行的 SQL 脚本的跟踪信息,可以使用以下命令。
viewTraceInfo("2eb58830-90cd-e3b3-4544-429237e80ad8")
下图以树状结构清晰地展示了 SQL 的执行流程,并详细列出了每个步骤的脚本执行耗时。