如何优化单个查询以立即在 LINQ 中多次调用?

尼拉吉·梅塔

我正在调用单个查询以使用 Ajax 在我的 Web 应用程序的主页上获取多个类别数据。但它的性能很糟糕。如何改进它?

var result = _db.news.Where(a => a.Sector == sector)
    .OrderByDescending(a => a.ModifiedOn)
    .Select(a => new LatestNewsView { 
        Id = a.Id, 
        Title = a.Title, 
        CreatedOn = a.ModifiedOn, 
        ImageUrl = a.ImageUrl, 
        Sector = a.SubTitle, 
        Country = a.Country, 
        NewId = a.NewsId 
    })
    .AsNoTracking().Skip(skip).Take(take);

Ajax 调用

$.ajax({ url: "/Home/NewsBySectorTitle?sector=10, dataType: "html" }).done(function (data) {$("#col1").append(data);});
拉约斯·阿帕德

缓慢可能来自以下来源:

  • 数据库
  • 应用服务器
  • 应用
  • 服务器端网络
  • 响应大小
  • 网络连接
  • 浏览器

数据库

您将需要直接在数据库中运行 LINQ 生成的查询。如果它很慢,那么你有一个数据库级的性能问题。在这种情况下,您需要查看数据库的架构、涉及的表的大小以及查询本身。很明显,您有一个过滤器Sector你有这个领域的索引吗?如果没有,创建一个也无妨。由于将计算索引,这将提高读取操作的速度,但会降低写入操作的速度。但是,读取通常比写入频繁得多。看看正在加载的列。是否有包含大数据长文本的列?

应用服务器

您的 IIS 是否设置为按顺序处理请求?其他站点是否在同一台服务器上运行?

应用

您需要在那里放置一个断点以确保这确实是需要很长时间的操作。如果是这种情况,则很可能是数据库问题,但不一定。例如,如果您执行此操作很多时间,s。如果这不像你想象的那么慢,那么慢可能来自应用程序的另一个地方。也许是另一个查询,或者,如果您多次执行此查询,您可能需要修改查询以加载批量数据。

服务器端网络

您可能需要检查网络服务器端。如果消息从路由器到达服务器并返回的速度通常很慢,那么这也可能是您的特定情况的原因。

响应大小

它可能take非常大,或者每行都有很长的文本,下载数据需要很长时间。在这种情况下,您可能希望最初发送前 10 个结果并在用户查看前 10 个时加载其余的结果。

网络连接

如果您或您的服务器的 Internet 连接速度很慢,这也可能是导致问题的与编程无关的原因。

浏览器

您正在通过 jquery 附加数据。如果将其替换console.log('foo');为性能是否会提高很多?在这种情况下,您的结构可能会因大量事件而变得非常复杂,从而导致您的浏览器永远加载内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

LINQ查询中的调用函数

来自分类Dev

优化LINQ查询调用Newbie C#/ LINQ问题

来自分类Dev

何时在linq查询中调用Take?

来自分类Dev

从Linq查询中调用SQL标量函数

来自分类Dev

JavaScript中的单个函数多次调用

来自分类Dev

在此LINQ查询中多次使用“选择”的目的是什么?

来自分类Dev

属性 getter 中 LINQ 查询的性能优化

来自分类Dev

LINQ优化使用对整数集合的单个查询

来自分类Dev

如何优化此LinQ查询?

来自分类Dev

如何在LINQ Select中调用方法

来自分类Dev

如何在 LinQ 中调用函数

来自分类Dev

如何在Linq to Entities查询中调用本地方法?

来自分类Dev

如何在Linq to Entities查询中调用本地方法?

来自分类Dev

如何在Java中多次调用launch()

来自分类Dev

如何多次调用函数?(在setInterval()中)

来自分类Dev

如何防止在Jquery中多次调用函数

来自分类Dev

如何在LINQ中查询?

来自分类Dev

连接Linq查询中的Linq查询结果

来自分类Dev

SQL 查询到 LINQ 如何在 linq 中编写查询

来自分类Dev

单个Asynsctask android中多次调用JSON url中的问题

来自分类Dev

Linq中的子查询

来自分类Dev

LINQ查询中的错误

来自分类Dev

在Linq查询中尝试

来自分类Dev

LINQ查询中的NullReferenceException

来自分类Dev

LINQ查询中的条件

来自分类Dev

LINQ查询中的增量

来自分类Dev

Linq中的通用查询

来自分类Dev

LINQ查询数组中的IN

来自分类Dev

Linq中的子查询