.net核心一对多关系太慢



我有一个。netcore应用程序,我在PortalDBContext中设置了如下表。OnModelCreating

modelBuilder.Entity<Parent>()
.HasMany(p => p.Childs)
.WithOne(c=> c.Parent)
.HasForeignKey(c=> c.ParentId);

Parent类的PK id为GUID,

public ICollection<Child> Childs { get; set; }

Child类的PK id为GUID,

public virtual Guid ParentId { get; set; }

SQL Profiler显示SQL在本地运行需要0.8秒。每个表只有一行。代码中的调用需要1分钟40秒

var context = this._dbContextProvider.GetDbContext();
var query = context.Parent.Include(p => p.Childs)
.Where(c=> c.Id == ParentId);
return await query.ToListAsync();

我不知道为什么这个电话花了这么长时间。应用程序中的其他呼叫只需要一两秒钟。

以上没有问题。但是数据库中有一个列是大的. 它保存了一个编辑器的结果,可以包含非常大的图像。src="data:image/png;base64,iVBORw0KGgo...当我从该列中删除数据时,它运行得和正常一样快。

但是差别很大。

SQL处理大数据=0.8秒。. net Core取回结果1分40秒

可能是因为SQL在显示DATALENGTH为13,000,000的内容时截断了一些文本。

相关内容

  • 没有找到相关文章

最新更新