Asp.net 哪个更好:在数据库级别还是在应用程序级别对结果进行排序

Asp.net 哪个更好:在数据库级别还是在应用程序级别对结果进行排序,asp.net,.net,sql,Asp.net,.net,Sql,假设我们在一个站点中有一个页面,显示数据库中的一些记录 我们需要显示按某列排序的记录 哪种方法可以提供更好的性能:检索从数据库排序的数据,还是在网格上应用排序 如果存在所需的索引,则数据库中的排序速度要快得多。这取决于要显示的数据量。对于可以在一个页面上显示并且您确信将保持相当稳定的少数记录,可以在UI端进行排序 对于大数据,在数据库进行排序更好。若UI支持分页,那个么数据库端的排序将避免向UI传递大量数据,UI将丢弃除第一页相关的所有行。排序是数据库最擅长的事情之一。假设列上有索引,应该让数据

假设我们在一个站点中有一个页面,显示数据库中的一些记录

我们需要显示按某列排序的记录

哪种方法可以提供更好的性能:检索从数据库排序的数据,还是在网格上应用排序


如果存在所需的索引,则数据库中的排序速度要快得多。

这取决于要显示的数据量。对于可以在一个页面上显示并且您确信将保持相当稳定的少数记录,可以在UI端进行排序


对于大数据,在数据库进行排序更好。若UI支持分页,那个么数据库端的排序将避免向UI传递大量数据,UI将丢弃除第一页相关的所有行。

排序是数据库最擅长的事情之一。假设列上有索引,应该让数据库来做。而且,如果没有索引,它的设置就不正确。

我认为任何处理都最好在数据库上完成,因为最后你的应用程序是数据库的接口,因此,只需调整数据库并创建适当的聚集索引和非聚集索引,以加快排序过程。如果正在排序,则应在数据库上进行排序。如果所需列有索引,则无需再三考虑。对于一些记录,可以在UI上执行此操作,这取决于如果您经常在不同的列上对数据进行排序,那么最好在应用程序级别执行此操作,因为这样比每次提取排序的数据更快


但如果情况并非如此,并且您有相应的索引,则在服务器端执行此操作,因为这样比在应用程序端进行排序更快。

+1用于指出问题空间和可用选项的分析。