yiming
eff3ad778b
優化 adminUserController.cs 的子查詢性能
問題:
Line 93 將所有會員的 admin_num 載入內存(ToList)
- 如果有 10,000 個會員,載入 10,000 個 int (40KB)
優化:
改為使用 IQueryable 子查詢,在數據庫層面執行
- var usedAdminNums = _db.members.Select(b => b.admin_num); // 不 ToList()
- 生成 SQL: WHERE num NOT IN (SELECT admin_num FROM members)
效果:
✓ 減少內存占用:40KB → 0
✓ 減少查詢次數:2 次 → 1 次
✓ SQL 優化器可以更好地優化查詢計劃
對比原始代碼:
- 原始(嵌套 AsEnumerable):N+1 查詢問題,執行 51 次
- ToList 版本:載入 40KB,執行 2 次
- 當前版本:不載入內存,執行 1 次(最佳)
2025-11-12 17:27:35 +08:00
..
2025-08-29 01:27:25 +08:00
2025-08-29 01:27:25 +08:00
2025-11-12 17:01:49 +08:00
2025-08-29 01:27:25 +08:00
2025-11-12 16:20:51 +08:00
2025-10-03 14:37:33 +08:00
2025-11-12 17:27:35 +08:00
2025-10-29 13:48:20 +08:00
2025-10-29 13:48:20 +08:00
2025-10-29 13:48:20 +08:00
2025-10-29 13:48:20 +08:00
2025-10-29 13:48:20 +08:00
2025-08-29 01:27:25 +08:00
2025-11-12 17:11:05 +08:00
2025-11-12 17:11:05 +08:00
2025-08-29 01:27:25 +08:00
2025-08-29 01:27:25 +08:00
2025-11-12 12:50:13 +08:00
2025-08-29 01:27:25 +08:00
2025-11-12 17:12:40 +08:00
2025-08-29 01:27:25 +08:00
2025-11-12 17:01:49 +08:00
2025-10-14 13:44:23 +08:00
2025-10-29 13:48:20 +08:00
2025-09-25 15:18:34 +08:00
2025-09-16 11:49:02 +08:00
2025-09-17 17:31:34 +08:00
2025-09-25 15:18:34 +08:00
2025-09-09 16:25:28 +08:00
2025-08-29 01:27:25 +08:00
2025-08-29 01:27:25 +08:00
2025-08-29 01:27:25 +08:00
2025-11-12 17:04:03 +08:00
2025-11-12 17:11:05 +08:00
2025-11-12 16:20:51 +08:00
2025-11-12 17:18:12 +08:00
2025-10-20 11:54:40 +08:00
2025-10-19 21:59:22 +08:00
2025-11-12 15:58:20 +08:00
2025-09-25 15:18:34 +08:00
2025-09-25 15:18:34 +08:00
2025-09-09 16:25:28 +08:00
2025-09-25 15:18:34 +08:00
2025-09-04 18:30:54 +08:00
2025-09-17 17:40:44 +08:00
2025-08-29 01:27:25 +08:00
2025-11-12 17:01:49 +08:00
2025-11-12 17:18:12 +08:00
2025-11-12 17:21:53 +08:00
2025-08-29 01:27:25 +08:00