我正在使用我的Web应用程序中的PagedList类,如果您使用ASP.NET MVC和LINQ to SQL做任何事情,许多人可能会熟悉它.它已经被Rob Conery发布了博客,并且像Nerd Dinner等类似的化身也包括在内.它的效果很好,但是我的DBA对未来潜在的性能问题提出了担忧.
他的问题是由于这一行而发出的SELECT COUNT(*):
TotalCount = source.Count();
Run Code Online (Sandbox Code Playgroud)
由于IQueryable.Count()方法调用,任何具有分页数据的操作都将触发其他查询(如下所示):
SELECT COUNT(*) AS [value] FROM [dbo].[Products] AS [t0]
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来处理这个?我考虑使用PagedList类的Count属性来获取项目计数,但意识到这不起作用,因为它只计算当前显示的项目数(而不是总计数).
当数据库中存在大量数据时,这会对我的应用程序造成多大的性能影响?
我是 SVN 的粉丝,我很乐意设置自己的 svn 存储库,但我想知道是否有比创建单独的存储库更好的选择。
基本上,我只是在寻找一种在我的代码被审查并签入主存储库 (SourceSafe) 之前跟踪或回滚更改的方法。
注意:我无法控制我们使用哪个版本控制系统(更喜欢 svn 或 svk),所以坚持使用 SourceSafe 作为主存储库。