分析師只需記住的结論
- 持久分页跑完 → 产生快取表,可在后續 SQL 里直接 @@PROTECT0@@ 引用。
- Agent 在 Execute 时也可能产生快取(多見于后台步驟);两種快取在側邊欄 Cached 都能 查看 SQL。
- Source Run 用在你引用了上游分页、想按依賴順序重跑整條链——是加速与重跑手段,不是「分析合不合格」的门檻。
- 一次性 JOIN 若口徑清楚,可以直接跑——不必为了「看起來很專业」硬拆很多步。
两種快取:persist vs agent
| persist 快取 | agent 快取 | |
|---|---|---|
| 來源 | 你(或 Agent)儲存并執行的持久 SQL 分页 | Agent Execute 过程中物化的中间结果 |
| 查看 SQL | 分页内 SQL | 系統記录的查詢 SQL |
| Source Run | 支援 | 不参与 |
| 右鍵 | Run、Source Run、Open Tab、Lineage 等 | mainly 查看 / 刪除 / SELECT 100 |
分析師日常:
- 懷疑口徑 → Cached → 查看 SQL
- 改了上游分页 → 对下游分页 Source Run 或手動重跑上游
- 快取过期或重启后消失 → 重新執行对应分页即可(見 USER_GUIDE §7.4 注意事項)
什麼时候值得拆 persist 分页
值得拆:
- 同一「清洗逻辑」会被 3 次以上 引用
- 中间表很大,重跑成本高,且口徑已 在 Plan 写死
- 你要給同事看 「这步到底濾了什麼」 作为審查点
不必硬拆:
- 两表 join 條件已在 Plan 說清,且 SQL 一屏能读完
- 只是 Quick 里试一下 filter
原则: 分析正確性与可審性优先;拆步是为了重跑、除錯、共用,不是儀式。
Source Run 是什麼(白話版)
当你的 SQL 写了 @@PROTECT1@@,而 @@PROTECT2@@ 來自另一个持久分页时,Source Run 会:
- 找出所有上游依賴
- 按順序執行上游分页
- 最后執行你这一页
适合:上游改过、下游要更新,或你不確定上游是否还是最新。
Lineage(血緣图) 可视觉化誰依賴誰——周会解釋「这个数从哪几步來」时有用。
与 Execute / Report 的关系
- Execute 中 Agent 可能建立多个 SQL 分页与快取;Progress → Steps 可对照查詢步驟。
- Report 写的是结論;SQL + 快取是證据。追問时两邊都要能对上。
- 刪除快取会更新对話内的 Query Step Ledger 狀态;Agent 之后应重新查詢,而不是假设旧表还在。