NetCore性能优化

NetCore性能优化

2.非跟踪查询
在只读方案中使用结果时,非跟踪查询十分有用,可以更快速地执行。
增加AsNoTracking()表示非跟踪,如:
var users = context.User.AsNoTracking();

还可以在上下文实例级别更改默认跟踪行为:
context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
var users = context.User;

全局筛选

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<User>().HasQueryFilter(p => !p.IsDeleted);
}

批量处理

  1. 1.批量操作
  2. 批量更新:
  3. int   count = context.User.Where(u=>u.UserName=="张三1").Update(u=> new User{ UserName= "李四1" });
  4. 批量删除:
  5. int   count = context.User.Where(u=>u.UserName=="张三1").Delete();
复制代码



5.合理使用tolist,toList是将数据库开销后将记录数放置到程序的内存中,大数据下禁止使用。
6.频繁查询应调用缓存记录,例如:获取角色资源列表接口。
7.split 方式操作集合应使用linq方式,不推荐使用遍历方式。

原文地址:https://www.cnblogs.com/PingleDay/p/15742589.html