Appearance
Skill / /znf:explain-plan
/znf:explain-plan
DB-perf gate hai tầng: quét tĩnh diff và explain plan từng query, phân loại phát hiện BLOCKING hoặc ADVISORY.
Cách gọi
text
/znf:explain-planKhi nào dùng
Khi diff thêm hoặc đổi một query DB. /znf:ground gọi skill này sớm ở mức advisory; /znf:ship gọi lại ở bước verify và một phát hiện BLOCKING chưa được waive làm ship không hoàn tất.
Cách hoạt động
- Skill chạy
zenify db-perf --json, mặc định quétorigin/staging..HEAD. Khi không có query nào trong diff, skill ghi "no query in this diff" và dừng. - Khi DB truy cập được, skill lấy tên collection thật rồi chạy explain cho từng chỗ gọi qua
zenify db-read evalvớiexplain("executionStats")hoặczenify db-read sql 'EXPLAIN ANALYZE ...'. Không truy cập được thì skill ghi "dynamic layer skipped: DB unreachable" và chỉ giữ kết quả tĩnh. - Phân loại:
COLLSCANtrên collection lớn,Seq Scantrên bảng lớn, hoặc tỉ lệ docs xem trên docs trả về trên 100 là BLOCKING; tỉ lệ 10 đến 100, cóSORTdù đãIXSCAN, hoặc$lookupsang collection bịCOLLSCANlà ADVISORY. - Skill in một khối
## DB-Perf, BLOCKING trước, mở đầu bằng "Advisory — no BLOCKING finding." hoặc "BLOCKING — N finding(s) must be fixed or waived before ship."
Lưu ý
Index tồn tại không có nghĩa index được dùng; skill đọc IXSCAN thật trong plan. Waive một phát hiện bằng comment // znf:db-perf-ok: <lý do> trên dòng query.