首页/新闻资讯/正文详情

一次问数从 38 秒到 4 秒,我把耗时拆成了五段

发布时间:2026/11/7 8:29:14 来源:云帆数科 栏目:资讯中心
一次问数从 38 秒到 4 秒,我把耗时拆成了五段
一次问答的链路测量手记 · 从 38 秒到 4 秒01周一早上那三十秒周一早上八点四十运营总监在群里丢了句话上周租金收缴率怎么掉这么多。小周打开问数平台把这句话原样敲进去按回车。转圈。转了很久。她看一眼手机又看回屏幕然后关掉页面翻出上个月那份还没删的旧报表。这个动作我记了很久。报表本身没什么问题问题在我们费了半年力气做到能用一句话查数结果败在等三十秒上。后来我拿这件事做了两个月把一次问数的耗时从头到尾量了一遍。这篇写这个。02先记秒数别猜第一版做了件很笨的事给链路每一段打点。一次问数走五段路。听懂问题含分词、实体识别、时间归一化「上周」到底指哪七天的哪一天开始。找表找字段从两百多张表里筛出可能相关的几张。拼 SQL 是模型干活。执行是数据库干活。收尾出图出文由前端和模板管。打点跑了三天抓了两千多次问答。结果第一眼就把我的判断推翻了。我一直以为慢在模型上那东西听着就贵。实测里模型那段平均 3.1 秒数据库那段平均 26 秒。38 秒的总耗时七成耗在数据库。模型背了锅。我后来想过为什么会误判。大模型是黑盒等它的时候屏幕什么也不动人容易把等待感全记到它头上。数据库在后台扫几百万行你看不见也想不到。看不见的地方最藏问题性能上尤其明显。0326 秒是怎么来的那段时间我干的事基本是跟在每条慢查询后面捡东西。捡出三类。索引被自己废掉。合同表的起租日期上有索引模型生成的 SQL 写成to_char(起租日期,YYYY-MM) 2026-10字段被函数包了一层索引用不上只能全表扫。这种写法在自然语言转 SQL 里到处都是因为用户说的就是十月模型顺手把日期格式化了。分区裁剪失效。我们按年做了分区条件被 cast 过优化器识别不出该走哪个分区每次扫全部。join 得太多。问一句这栋楼租金收了多少模型会老实关联合同、房源、租户、收款四张表。前两张必要后两张只为了显示名字。三类叠起来「上周收缴率」这句看起来很简单的问话扫了四百多万行。改法很朴素。日期条件换成开区间起租日期 月初 and 起租日期 下月初函数挪到常量那边。分区字段单抽一列存年份别在查询里算。join 按需生成用户问了租户名才带租户表。光这三条26 秒掉到 9 秒。04宽表和宽表带来的新麻烦剩下 9 秒靠改 SQL 压不下去了它本来就要扫那么多明细。我们加了一层日粒度汇总表。收缴率、出租率、单方能耗、在租面积这几类最常被问的指标每天凌晨算一遍落表一行是一栋楼一天。查询进来先判断能不能命中汇总表能命中就不碰明细。9 秒变成 2.6 秒。汇总表有代价代价在口径。明细算收缴率和汇总算收缴率中间差一个「当月应收到期日已过」的过滤条件写汇总作业的同事漏了。上线第三天财务发现平台给的收缴率和他们自己算的对不上差两个点。账算清楚就明白了多加一层计算就多一个口径要守。我们后来把每个汇总指标的取数逻辑写进配置文件和明细口径并排放改一个必须同时改另一个评审时一起看。05缓存三个 key 少一个就出事再往下压只能靠缓存。高频问题命中直接返回这是最省事的一招。P50 从 2.6 秒掉到 400 毫秒。然后就出事了。数字过期。缓存 key 当时只用问题原文没带时间参数。运营早上问这个月出租率下午再问拿到早上的旧数。上午刚签了份合同数字该变页面没变。越权。两个人问同一句话结果该不一样数据范围不同。key 里没带权限A 的答案给了 B。口径切换。中途调整过一次收缴率的分母缓存里的旧结果还在新旧两套数混着返回。三次事故之后key 定成三段拼起来归一化后的问题、时间窗口、权限范围。少一段都不行。有个取舍要说清。带上权限之后命中率掉了差不多一半它变成了按人区分的缓存。拿命中率换正确性这笔账我觉得不用犹豫。06四秒之后她说还是慢数字压到 4.2 秒我挺得意专门跑去找小周演示。她试了两次说还是有点慢。我有点不服四秒还慢。后来让她一边操作一边说感受才明白问题在哪。等四秒和等四秒不一样。一种屏幕什么都不动你不知道它在干嘛。一种上面一行小字在跳正在查十二万条合同已经找到三百八十六条你会觉得它在干活。差别在进度秒数只是背景。后面做的事没什么技术含量。中间状态吐出来。先出结论那一句和总数明细后补。SQL 执行超过两秒先显示正在查询预计还需两秒。图表不等明细全量先画前一百条。同一套后端改完这些小周的原话是现在感觉挺快的。07现在的做法我们没再追更低的数字。P95 稳在六秒上下偶尔遇到跨年的大范围问题会冲到十几秒这个我认。每月看一次 P95 和慢查询 Top20掉队的拉出来单独看。超过八秒才立项其余记账不动。优化到四秒花了我两个月四秒到三秒可能要再花两个月那一秒用户感觉不到。工程上容易犯的错是把能优化的都优化一遍忘了问一句值不值。上周我又看见小周在那个页面敲字。这次她敲完没关页面等着屏幕上那行小字在跳。大概三秒表格出来了。文中所涉数据来自一次真实的链路打点跑了三天两千多次问答。数字做了取整处理。

相关推荐

ESP32踩坑实录:定时器让灯一直闪,但程序怎么停不下来了?
ESP32踩坑实录:定时器让灯一直闪,但程序怎么停不下来了?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 6:40:18

具身智能大脑混战:9家头部公司跑出了4条路,「类脑架构」初露锋芒
具身智能大脑混战:9家头部公司跑出了4条路,「类脑架构」初露锋芒

机器人大脑开始分道扬镳。 有句话是这么说的:人类与机器人的最大区别,是人类会预判。比如运动员,电竞选手等,有时候对手招还没出完,身体已经先动了。 但这个说法放在2026年的今天并不准确,如今&#xff0… · 2026/11/6 6:40:18

EtherCAT从入门到精通(6)
EtherCAT从入门到精通(6)

接前一篇文章:EtherCAT从入门到精通(5) 本文内容参考: 《工业以太网现场总线EtherCAT驱动程序设计与应用》 郇极 刘艳强 编著 北京航空航天大学出版社 工业以太网现场总线 EtherCAT 驱动程序设计及应用学习笔记_ethercat总线-CS… · 2026/11/6 6:39:16

贵州电工证考题题库内部消息:证书过期了不知道怎么复审延期?教你一步到位
贵州电工证考题题库内部消息:证书过期了不知道怎么复审延期?教你一步到位

贵州电工证考题题库内部消息:证书过期了不知道怎么复审延期?教你一步到位 证书过期了不知道怎么复审延期,你是不是也遇到过这种情况?别急,这波 内部消息 我先给你透个底——贵州电工证复审不是你想象的那么难,关键是你得知道流程,还得掌握… · 2026/11/7 8:28:38

迪庆高低压电工证良心建议:怎么报不被坑
迪庆高低压电工证良心建议:怎么报不被坑

迪庆高低压电工证良心建议:怎么报不被坑 不知道去哪报名怕被中介坑?迪庆高低压电工证虽然听起来是个技术活,但其实很多人连基本的流程都不清楚,更别提找对地方了。尤其是你这种想踏实干电工的人,千万别被那些打着“包过”“快速取证”的中介忽悠了。今天… · 2026/11/7 8:28:38

青岛低压电工证在哪考 上岗必备证书怎么拿
青岛低压电工证在哪考 上岗必备证书怎么拿

青岛低压电工证在哪考 上岗必备证书怎么拿 你有没有这种情况:明明已经准备好了电工的技术,可就是因为少了低压电工证,面试屡屡被拒?低压电工证不是可有可无的“附加项”,而是 上岗必备… · 2026/11/7 8:28:38

初级电工证问答题在哪考?证书过期了不知道怎么复审延期
初级电工证问答题在哪考?证书过期了不知道怎么复审延期

初级电工证问答题在哪考?证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期,这种情况相信不少电工朋友都遇到过。特别是在从事低压电工、高压电工等特种作业岗位时,一旦证书到期没及时处理,不仅影响日常工作,还可能被处罚甚至停职。那么,… · 2026/11/7 8:28:38

高压电工证美国考前押题怎么准备?实操考试心里没底怕挂科
高压电工证美国考前押题怎么准备?实操考试心里没底怕挂科

高压电工证美国考前押题怎么准备?实操考试心里没底怕挂科 实操考试心里没底怕挂科,尤其是对高压电工证美国这类特殊场景的报考者来说,每一次操作都可能影响最终结果。很多人在备考过程中,常常会担心自己能不能通过,尤其是在实操考试环节,稍有不慎就可能… · 2026/11/7 8:28:38

抚州高级电工证在哪里考 2026河南最新政策下怎么稳过实操考试
抚州高级电工证在哪里考 2026河南最新政策下怎么稳过实操考试

抚州高级电工证在哪里考 2026河南最新政策下怎么稳过实操考试 实操考试心里没底怕挂科?特别是像你这样打算考抚州高级电工证的,面对复杂的操作流程和严格的评分标准,多少都会有点紧张。2026年河南最新政策对特种作业证考试进行了更新,尤其是在实… · 2026/11/7 8:27:38

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23

澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄?
澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄?

澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄? 证书过期了不知道怎么复审延期?别慌,很多人在拿到【澳洲水电工证考试】的电子证书后,一不小心就忽略了复审时间,结果证书失效,工作受阻,甚至被单位追责。今天就从【澳洲水电工证考试… · 2026/11/7 0:00:41

电工作业提示版通过率揭秘:怎么考才能一次过?
电工作业提示版通过率揭秘:怎么考才能一次过?

电工作业提示版通过率揭秘:怎么考才能一次过? 怕考不过白交培训费?别急,今天我就从驻马店应届工程类毕业生的视角,带你全面了解电工作业提示版的考试流程、备考要点和真实通过率,帮你少走弯路、提高一次通过率。… · 2026/11/7 0:00:41

电工证年审报名千万别踩坑 外省证转过来要搞清这几点
电工证年审报名千万别踩坑 外省证转过来要搞清这几点

电工证年审报名千万别踩坑 外省证转过来要搞清这几点 之前考的证在外省能不能转过来?这个问题是很多电工从业者最关心的,特别是像你这样在商丘从事公路工程的人员,经常需要跨省流动,证书的 有效性 和 可迁移性… · 2026/11/7 0:00:41

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码