dev.to | 📄 原文链接 | 2026-08-03 收录

我加载了 8,956 行数据,只为了翻转一个布尔值

来源:dev.to — 2026-08-03

📋 概述

作者用 EF Core 写的一个归档夜间任务:把超过 90 天的已交付订单标记为已归档。他打开 SQL 日志才发现这段四行代码把 8,956 行完整记录全查出来,再逐行发 UPDATE 写回 8,956 个布尔值——75 MB 分配、355 毫秒、8,957 条 SQL 命令。改用 EF 7 就有的 ExecuteUpdate 后,同一条件只发一条 SQL,10.6 毫秒、68 KB 分配,性能提升 33 倍、分配减少约 1100 倍。

🔑 核心要点

💡 金句

load-modify-save is for entities with behavior, and it earns its cost a handful of rows at a time.
← 返回 Dev.to 首页