【问题标题】:Using Dataset should I paginate in Server or in the dataset query使用数据集我应该在服务器或数据集查询中分页
【发布时间】:2019-04-26 11:44:03
【问题描述】:

我正在为我正在创建的网站使用强类型数据集

我应该修改我的数据集查询以每次带来 10 个结果,还是应该使用 Linq 并通过我已经从列表中获得的数据进行分页

例如,我可以使用

List<T> newsList = news.GetList().Take(x).Skip(x);

或者我可以一起去

Select * from News Order By NewsId Desc Offset 0 Rows Fetch Next 1 Rows Only;

【问题讨论】:

  • 更好的是:我们在 2018 年,快到 2019 年了,几乎没有充分的理由使用 DataTable/DataSet,更不用说在新的开发中了。您应该考虑使用 ORM

标签: c# asp.net dataset


【解决方案1】:

我的adivse是始终在数据库查询中进行分页和过滤。将其移动到UI只获得SQL Server,网络,内存的多余负载。并且在最坏的情况下,竞争条件/触发更新竞争条件检测。

在WebDevelopment中甚至更真实。 page lifecycle dictates将构建页面,处理后的回发,发送给用户 - 然后立即删除内存。您必须离开您的方式来保留数据,并且本身可能会导致许多问题。 ASP.NET更容易受到OOM异常的影响,然后是正常的.NET应用程序和数据库查询和LINQ在那里为Culpripts:https://blogs.iis.net/webtopics/troubleshooting-system-outofmemoryexceptions-in-asp-net

【讨论】:

  • 虽然这个答案有很好的点,它只在第一段中。这篇文章是从2009年起。现在几乎没有32位操作系统,Web应用程序多年来使用了数十名GB。此外,这篇文章没有提及Linq一段时间,所以不确定该点是什么。 span>
  • @ camiloterevinto右,它entioend正则表达式,而不是linq。自从我读过它以来已经有一段时间了,所以某些东西可能会在记忆中交叉。至于内存限制:当您更难修复设计时,Jsut会遇到OOM。我们正在谈论DB表转储。一些检索方法Temproive Double所需的RAM的数量。 DB表仍然可以轻松地是GIB的数据。 span>
猜你喜欢
  • 2023-03-12
  • 2019-01-15
  • 2010-11-19
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 1970-01-01
相关资源
最近更新 更多