前端 CloudFunctionsService.operations 的 20 秒超时是截图错误的直接触发条件。线上实际请求仍返回成功:首次并发探测工作台 55.155 秒、工资收益统计 61.766 秒,数据没有消失。
两条路径共同调用工资来源、版本和截止核验。ReviewRewardIncome 原视图通过 jsonb_populate_record(to_jsonb(...)) 逐条重建全部凭据,租户/月筛选不能提前下推;计划显示约 15.6 万条全表记录进入函数扫描。工资来源的高估成本还触发昂贵的 JIT 编译。对限定函数禁用 JIT、直接投影视图字段后,保持原有计薪口径和来源核验。
已在 2026-10-15 14:04:47(北京时间)发布 scripts/sql/payroll-read-timeout-recovery.sql:
xs_payroll_sources、xs_payroll_source_version、xs_payroll_cutoff_snapshot 的函数级 jit=off;没有修改全局数据库配置。ReviewRewardIncome 读取投影,保留所有列、顺序、类型及纠正逻辑。发布前备份实际线上定义,校验无运行中同步、线上定义未漂移;在同一可重复读事务内对比修改前后的收入投影摘要及来源版本,不一致即回滚。
156,057 条投影的排序摘要前后均为 08d5547285eae9d3a7c75a0f342ece57,来源版本前后均为 10d46191d1e7a53e98ca3a6a72b7d656。备份与原始验收响应保存在本机私有目录 /Users/mac/.local/state/xiaoshu/cloud-releases/2026-10-15-admin-recovery/,不入库。
http://127.0.0.1:4300 连接真实线上接口的浏览器验收:工作台 19.204 秒、工资页 18.165 秒显示真实统计和列表;无 JS 错误、无页面报错。截图保存在上述私有目录。.metric-card 选择器;修正为实际 .overview-metrics 后两个页面通过。这些是故障定位与恢复的小样本,不是交替 10 轮的 p75 性能结论;仍有约 14–19 秒等待,完整性能优化正在独立任务中处理。本次不提交该任务的查询、视图源文件等未完成改动。
在受控事务中恢复私有 sql-baseline.json 的三个 pg_get_functiondef 定义,并以 view.json 中的原视图定义执行 CREATE OR REPLACE VIEW。只回滚定义,不撤销或删除任何凭据、防重约束和历史调整。回滚会重新带来已知超时,应以再次修复查询为优先。
node --test scripts/tests/payroll-integrity.test.mjs scripts/tests/payroll-cutoff.test.mjs scripts/tests/review-rewards.test.mjs scripts/tests/payroll-read-timeout-recovery.test.mjs