我有一个。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的内容时截断了一些文本。