SQL 查询¶
直接对 trace 数据执行 PerfettoSQL 查询。
概述¶
当内置分析命令无法满足特定需求时,你可以直接运行 PerfettoSQL 查询。这让你可以完全访问 trace 数据模型。
命令¶
query sql¶
执行 PerfettoSQL 查询。
# 内联查询
perfetto-cli -t trace.perfetto-trace query sql --query "SELECT * FROM slice LIMIT 10"
# 从文件加载查询
perfetto-cli -t trace.perfetto-trace query sql --file query.sql
选项:
| 选项 | 说明 |
|---|---|
--query <sql> |
SQL 查询字符串 |
--file <path> |
SQL 文件路径 |
query find-slices¶
按名称模式搜索切片。
选项:
| 选项 | 说明 | 默认值 |
|---|---|---|
--pattern <text> |
搜索模式 | 必填 |
--match-type <type> |
匹配方式:contains / exact / glob |
contains |
query slice-info¶
获取特定切片的详细信息。
常用查询¶
-- 列出 trace 中所有进程
SELECT pid, name FROM process ORDER BY name;
-- 查找耗时长的切片
SELECT name, dur/1e6 as dur_ms FROM slice WHERE dur > 16000000 ORDER BY dur DESC LIMIT 20;
-- 按名称统计切片数量
SELECT name, COUNT(*) as cnt FROM slice GROUP BY name ORDER BY cnt DESC LIMIT 20;
提示¶
- 使用
find-slices发现切片名称,然后再写复杂查询 - PerfettoSQL 文档:perfetto.dev/docs/analysis/sql-tables
- 配合
--file使用版本控制的.sql文件,实现可重复的分析