Files
17168ERP/web/App_Code
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-11-12 16:20:51 +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-08-29 01:27:25 +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-08-29 01:27:25 +08:00
2025-08-29 01:27:25 +08:00
2025-09-10 00:21:47 +08:00
2025-09-25 15:18:34 +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-08-29 01:27:25 +08:00
2025-09-11 00:47:51 +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-08-29 01:27:25 +08:00
2025-08-29 01:27:25 +08:00
2025-08-29 01:27:25 +08:00
2025-09-09 16:25:28 +08:00
2025-08-29 01:27:25 +08:00