乐于分享
好东西不私藏

语义层不是文档,是编译器:为什么 Agent 时代绕不开这一层

语义层不是文档,是编译器:为什么 Agent 时代绕不开这一层

一、先看一个会亏钱的错误

有两张表:

orders:       order_id=1001, amount=100
order_items:  order_id=1001, item_id=A / B / C   (3 行)

问 Agent:“上个月订单总额是多少?”

Agent 看到 catalog,发现两张表可以 join,于是写下:

SELECT SUM(o.amount)
FROM orders o
JOIN order_items i ON o.order_id = i.order_id

返回 300

这条 SQL 语法完全合法,执行没有报错,Agent 还会用一段自信的话把它解释一遍。但它错了三倍——join 把订单行放大成了明细行,amount 被重复计了 3 次。这是维度建模里的扇形陷阱(fan trap)

关键在于:元数据里没有任何一处能阻止这件事。表注释写了”amount 是订单金额”,字段类型是 decimal,血缘图画得很漂亮,但 orders → order_items 是一对多这件事,从来没有以机器可读、可强制执行的形式被声明过。

人类分析师不会犯这个错,因为他知道。Agent 会犯,因为没人告诉过它,而且它没有”我不确定”这个默认动作。

这不是模型能力问题,是架构问题


二、模型变强能解决吗:解决了一半,剩下那一半更危险

这里有一条难得的纵向证据,同一套题目跨越两年半被测了两次。

2023:16.7% → 54.2%

2023 年 11 月,data.world 的 Juan Sequeda 团队发布了一个企业级基准。数据集是保险领域(schema 基于 OMG 财产与意外险数据模型,后来被称作 ACME Insurance),题目按”问题复杂度 × schema 复杂度”分成四个象限。

结论:GPT-4 零样本直接对 SQL 数据库提问,准确率 16.7%;把同一份数据换成知识图谱表示(Text-to-SPARQL),准确率 54.2%。

Sequeda, Allemang, Jacob, A Benchmark to Understand the Role of Knowledge Graphs on LLM’s Accuracy for Question Answering on Enterprise SQL Databases, 2023-11-13

2024:72.55%,但真正重要的是那 8%

半年后同一团队做了追加实验:在知识图谱路径上加一道基于本体的查询校验(OBQC)——用本体里声明的定义域、值域约束,检查 LLM 生成的 SPARQL 是否走错了路径或搞反了方向;查出问题就把错误解释喂回 LLM 让它重写,最多三轮。

准确率升到 72.55%。但这篇论文里最值得注意的是另外两个数字:

  • 8% 的查询在三轮修复后仍不合规,系统返回 “unknown”,而不是返回一个结果。
  • 整体错误率因此从纯 SQL 的 83.3%、知识图谱的 45.8%,降到 19.44%

还有一个容易被忽略的细节:OBQC 本身不调用 LLM,是纯规则的确定性检查。

Allemang & Sequeda, Increasing the LLM Accuracy for Question Answering: Ontologies to the Rescue!, 2024-05。论文原话是”’我不知道’是一个有效答案,而且可以说比一个不准确的答案更好”。

这条证据的分量在于:真正把错误率砍掉一半的,不是更强的模型,是一层能声明约束、并据此拒绝的结构。

2026:模型确实变强了,然后呢

两年半后,dbt Labs 用同一个数据集、同样 11 道题重跑了一遍(2026 年 4 月),每题跑 20 次。

好消息——全量题目上,text-to-SQL 从 2023 年 GPT-4 的 32.7% 涨到 2026 年的 64.5%,几乎翻倍。

坏消息——64.5% 意味着每三个问题里就有一个答案是错的,而且它长得跟对的一模一样

而在语义层覆盖范围内的题目上,Sonnet 4.6 和 GPT-5.3 Codex 都是 100%(2023 年是 83.1%)。

补 3 个 dbt 模型、让语义层覆盖全部 11 题之后:

模型
text-to-SQL
语义层
Claude Sonnet 4.6
90.0%
98.2%
GPT-5.3 Codex
84.1%
100.0%
Ganz & Perigaud, Semantic Layer vs. Text-to-SQL: 2026 Benchmark Update, dbt Labs, 2026-04-07。基准代码开源:dbt-labs/dbt-llm-sl-bench

最该盯着看的,是这组对照

dbt 在正式跑基准前先做了一轮交叉测试:4 个模型(Opus 4.6、Sonnet 4.6、GPT-5.3 Codex、GPT-5.2)× 多档推理强度,从 Anthropic 的 low 到 max、OpenAI 的 none 到 xhigh。

结果:语义层路径上,多数组合是 100%,最低的 Opus 4.6 也有 87%;同样这些组合走 text-to-SQL,成绩在 50.0%–65.0% 之间来回晃。 GPT-5.3 Codex 在推理强度 none 档,语义层就是 100%,text-to-SQL 是 50%。

而且推理预算不是没有代价:GPT 系列开到 xhigh 时单次查询平均超过 20 秒(high 档是 8 秒),准确率没有任何提升。

这条对照的含义很直接:

把预算花在推理 token 上,回报接近于零;花在语义建模上,回报是三四十个百分点。

决定答案对不对的,是模型外面那层结构,不是模型本身。


三、所以,语义层到底是什么

一句话:

语义层是把业务概念映射到物理执行的、机器可读的可执行契约,并且它定义了一个封闭的合法查询空间。

这句定义里有三个承重词,逐个拆。

1)“映射”——它在两套语言之间做翻译

业务侧说的是”营收”“活跃客户”“履约率”;物理侧存的是 dwd_ord_dtl_di.pay_amt。这个映射本身就是企业最有价值的资产之一,但在传统架构里它没有存放的地方——它散落在分析师的脑子里、BI 工具各自的数据集里、报表 SQL 的硬编码里。

于是同一个”上月营收”,财务口径按 paid_at 算、运营口径按 created_at 算、都排除了退款单但一个排除了内部测试账号另一个没有——三个数,三个都”对”。

语义层不创造这个映射,它只是第一次把这个映射物化成了独立的、单一的制品。

2)“机器可读的可执行契约”——这是与数据字典的分界线

Confluence 上的指标口径文档也在描述业务概念,为什么它不算语义层?

因为它只能被阅读,不能被执行。它约束不了任何一条真实跑出去的 SQL。写文档的人和写 SQL 的人一旦不是同一个人,文档就开始腐烂。

可执行意味着:Agent 提交的不是 SQL,是意图

输入: metric = revenue
       dimensions = [region, month]
       filter = month in last_1
输出: 由引擎编译出的 SQL

dbt 用 MetricFlow 做这件事,Cube 用它自己的编译器,Wren AI 用 MDL。名字不同,机制一致:LLM 的职责被压缩到”选对指标和维度”,SQL 由确定性引擎生成。

回到开头那个 300——在这个架构里它压根不可能发生。orders → order_items 的一对多关系是在语义模型里声明过的,编译器知道该先聚合再 join,Agent 没有机会写出那条错的 SQL。不是它变聪明了,是那条路被物理封死了。

这也解释了为什么推理强度在语义层路径上不起作用:当错误路径已经不存在时,多想一会儿不产生任何收益。

3)“封闭的合法查询空间”——最反直觉,也最重要

前两点很多人认同,第三点常被当成缺点。

原始 catalog 是开放世界:N 张表 × M 个字段可以组合出天文数字级的 SQL,其中绝大多数语法合法而语义无意义。LLM 的默认行为是”总要给个答案”,于是这个巨大的合法空间就成了幻觉的温床。

语义层做的事,是把这个空间收缩到有限且已声明:只有建模过的实体、维度、度量和它们的合法组合可以被查询。超出范围?报错,不是猜。

这正是前面那 8% 的 unknown 在做的事,也是 dbt 那篇基准的核心结论——用大意转述:text-to-SQL 的失败长成一个看似合理的错误答案,语义层的失败长成一条报错信息。

对董事会材料、审计底稿、公司级 KPI 来说,这个差别比准确率数字本身更要命。64.5% 的准确率如果失败时会报错,是可以接受的——至少知道哪 35.5% 需要人接手。64.5% 的准确率如果失败时给出一个漂亮的错数,实际可用性接近于零,因为没人能区分。

一个判定测试:给系统一个语义上无意义但语法合法的问题,看它返回错误还是返回一个数。能拒绝的是语义层,只能回答的是文档。


四、代价必须写出来

只讲好处的技术结论不值得信。语义层的代价是真实的,而且同一份基准数据里就有反证。

代价一:覆盖率。 那 11 道题里有 3 道需要过多的实体跳转,MetricFlow 表达不了。在这 3 道题上,语义层准确率是 0%,而 GPT-5.3 Codex 用 text-to-SQL 反而 100% 答对。这是封闭世界假设的直接成本:没建模的问题,一个都答不了。

代价二:建模成本。 上面那个缺口是靠新增 3 个 dbt 模型补上的(这 3 个模型本身由 LLM 生成,人没写代码,但建模决策仍然要人来定)。语义模型的生产是持续的工作量,不是一次性投入。

代价三:一个必须点破的方法论保留。 dbt 在文中自己说明,为了让 text-to-SQL 那一侧跑起来,他们把整个 schema 都塞进了上下文,并指出这在更大的数据集上并不现实。换句话说,65%/90% 这些 text-to-SQL 数字是在一个对它相当友好的条件下取得的。真实企业环境里上万张表,检索本身就是新的失败源,实际表现只会更低。

所以结论不是”用语义层,别用 text-to-SQL”,而是:

  • 口径要一致、数字要进决策的场景(KPI、财报、审计、周报)→ 走语义层,接受覆盖率约束
  • 探索性、一次性、口径尚未沉淀的问题 → text-to-SQL 兜底,但要明确标记”此答案未经验证”
  • 两条路都受益于更好的物理建模——补了那 3 个模型之后,text-to-SQL 也从 64.5% 涨到了 84%–90%

五、给数据团队的一个判断标准

Agent 没有制造出新需求,它只是撤掉了兜底的人

过去没有语义层也能活,是因为分析师的隐性知识在中间做了缓冲——他知道哪张表能 join、哪个口径要排除测试账号、哪个指标不能跨时间求和。这层缓冲一旦被拿掉,所有从没被显式声明过的东西,都会直接以错误答案的形式暴露出来。

而且暴露方式很不友好:它不报错,只是给出一个错的数,附带一段流畅的解释。

判断标准可以很简单:

如果现在有人问你的数据系统一个语义上无意义的问题,它会返回错误,还是会返回一个数?

如果答案是”返回一个数”,那么这套架构还没准备好让 Agent 直连。


数据出处

本文引用的三组数据均为公开可复现:

数据
出处
GPT-4 零样本 SQL 16.7%;知识图谱 54.2%
Sequeda / Allemang / Jacob, 2023-11-13,技术报告 PDF
OBQC + LLM Repair 准确率 72.55%,unknown 8%,错误率 19.44%
Allemang & Sequeda, 2024-05, arXiv:2405.11706
text-to-SQL 32.7%→64.5%;语义层覆盖内 100%;补模型后 90.0/98.2 与 84.1/100
Ganz & Perigaud, dbt Labs, 2026-04-07,代码与完整数据 dbt-labs/dbt-llm-sl-bench

三组实验共用同一套 ACME Insurance 题目,因此可以纵向对比。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-10 21:02:31 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/921179.html
  2. 运行时间 : 0.256003s [ 吞吐率:3.91req/s ] 内存消耗:4,743.44kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=82e0b7231000b100eadffbd0b5c13032
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 4.22 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.11 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001115s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001568s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000676s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000751s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001395s ]
  6. SELECT * FROM `set` [ RunTime:0.000655s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001399s ]
  8. SELECT * FROM `article` WHERE `id` = 921179 LIMIT 1 [ RunTime:0.003315s ]
  9. UPDATE `article` SET `lasttime` = 1786366951 WHERE `id` = 921179 [ RunTime:0.005207s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000706s ]
  11. SELECT * FROM `article` WHERE `id` < 921179 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001506s ]
  12. SELECT * FROM `article` WHERE `id` > 921179 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000956s ]
  13. SELECT * FROM `article` WHERE `id` < 921179 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.009848s ]
  14. SELECT * FROM `article` WHERE `id` < 921179 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003048s ]
  15. SELECT * FROM `article` WHERE `id` < 921179 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.015456s ]
0.259832s