我目前正在使用NonFactors/MVC6-Grid来表示我的索引页面上的数据,这是一个使用.NET Core 2.0和Linux构建的相当基本的CRUD应用程序。 MVC。我有一个包含多个字段的模型,其中一些是计算字段。
使用MVC网格进行排序和过滤效果非常好,即使使用> 550,000条记录。但是,当我尝试对其中一个计算字段进行排序和过滤时,性能会大幅下降(大约需要45秒)。这不是世界末日,但我想知道是否有办法提高计算字段的性能?
我很确定性能下降是由于计算字段上缺少索引,或者是每个记录的计算属性被重新计算并且然后排序/过滤,或两者兼而有之。
如果有人对瓶颈的位置有任何了解,如果有办法可以提高性能,我们将不胜感激。
答案 0 :(得分:0)
您从DB获取记录,根据条件进行过滤并在C#代码中进行计算,然后将其映射到Dto列表并应用排序。最后,将Dto列表返回给客户端代码。
答案 1 :(得分:0)
从SQL文档
所以你可以设置索引......取决于计算。
另外,根据您使用的SQL Server版本....您可以将该列标记为PERSISTED。
使用索引对SQL Server进行排序和过滤将比客户端快得多,如前所述