
这次问题发生在一个 Oracle 查询上。业务页面要展示一批物料在仓储流程里的状态,数据来自本地表,也来自一张通过 DB Link 访问的远程明细表。页面慢,用户看到的是转圈,开发看到的是一段很长的 SQL。
我第一次看这段 SQL 的反应很直接:太乱了,先整理一下。
它里面有 CTE,有远程表,有 CONCAT(CREATION_DATE, CREATION_TIME),有 SUBSTR 截取库位号后 10 位,有 TO_CHAR(rm_tag, 'hh24miss') 判断班次,还有一堆状态 CASE WHEN。从代码可读性上看,确实有很多可以改的地方。问题是,数据库不按人的阅读体验执行。
2025/10/19大约 11 分钟

