我正在使用我的Web应用程序中的PagedList类,如果您使用ASP.NET MVC和LINQ to SQL做任何事情,许多人可能会熟悉它.它已经被
Rob Conery发布了博客,类似的化身也被包含在像
Nerd Dinner这样的东西中.它的效果很好,但是我的DBA对未来潜在的性能问题提出了担忧.
他的问题是由于这一行而发出的SELECT COUNT(*):
TotalCount = source.Count();
由于IQueryable.Count()方法调用,任何具有分页数据的操作都将触发其他查询(如下所示):
SELECT COUNT(*) AS [value] FROM [dbo].[Products] AS [t0]
有没有更好的方法来处理这个?我考虑使用PagedList类的Count属性来获取项目计数,但意识到这不起作用,因为它只计算当前显示的项目数(而不是总计数).
当数据库中存在大量数据时,这会对我的应用程序造成多大的性能影响?
解决方法
iirc这个东西是索引统计数据的一部分,应该非常有效,你应该让你的DBA将他的问题置于其中,而不是过早地优化.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。