【问题标题】:ADO.Net DataService Performance IssueADO.Net 数据服务性能问题
【发布时间】:2010-09-22 06:17:23
【问题描述】:

我们正在使用 ADO.Net DataService(.Net Framework 4.0,Visual Studio 2010)。我们有选择、插入、更新和删除操作。

  • 对于选择,我们有类似的查询

School school = _context.School.Expand("Address, ContactPerson, ContactPerson/Details......").Where(S => S.Name == "xxx").SingleOrDefault();

  • 用于插入

    _context.AddToSchool(学校); _contextSaveChanges();

    address.SchoolCode = school.Code; //// 地址与学校有关系

    _context.AddToAddress(地址);

//现在我们没有任何级联插入操作。

  • 对于更新我们正在使用这样的

    //每次更新时,我们都在创建对象,我们面临“上下文已经跟踪实体”或“上下文未跟踪”之类的问题。这是最糟糕的做法:(

    _context = new DataContext(……)

    AttachObject("学校", school); _context.UpdateObject(学校); _context.SaveChanges();

    代码 sn-p 用于在更新时附加对象。

    private void AttachObject(string entitySetName, object entity) {

    if (!_container.Entities.Where(entities => entities.Entity == entity).Any())
    {
        _container.AttachTo(entitySetName, entity);
    }
    

    }

  • 用于删除

    //现在我们没有任何级联删除操作。

地址地址 = _context.Address.where(A => A.Code == deleteAddress.Code).SingleOrDefault();

_context.DeleteObject(地址); _context.SaveChanges();

即使在本地系统中,这也需要大量时间。我害怕性能,这需要在单独的服务器中启动。请告诉我使用 "ADO.Net DATASERVICE"

的最佳方法是什么

我需要答案而不是投反对票:)

编辑:我检查了 5 行的范围,列为 10,嵌套表为 4。即使我可以看到单行更新的 UI 冻结 5 秒。

【问题讨论】:

    标签: visual-studio-2010 .net-4.0 c#-4.0 wcf-data-services


    【解决方案1】:

    我还不排除这个查询。

    1. 数据大小是多少?几百行、几百万行还是几亿行?
    2. 索引和磁盘性能?
    3. 如果是远程服务器,连接如何?

    现在查询

    1. 确保您没有展开重复数据。只展开需要的部分。
    2. 检查您正在扩展的其他数据类型,可能是二进制的图像等。

    希望对您有所帮助。

    【讨论】:

    • 它唯一的本地系统,它的配置太好了,行的只有个位数。它花费的时间是 ADO.Net 的两倍。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多