Sql server 通过Linq to SQL提高订单记录的查询性能

Sql server 通过Linq to SQL提高订单记录的查询性能,sql-server,performance,linq-to-sql,datatable,iorderedenumerable,Sql Server,Performance,Linq To Sql,Datatable,Iorderedenumerable,我正在使用查询从名为customers的表中获取记录,并希望按地址、门牌号、姓氏和姓名对记录进行排序 首先,我使用这个数据表 public CustomerInfo.customers GetCustomers(string zipcode) { string sql = "select id, name, surname, zipcode, housenumber where zipcode = @_zipcode order by address, housenumber, sur

我正在使用查询从名为customers的表中获取记录,并希望按地址、门牌号、姓氏和姓名对记录进行排序

首先,我使用这个数据表

public CustomerInfo.customers GetCustomers(string zipcode) {
     string sql = "select id, name, surname, zipcode, housenumber where zipcode = @_zipcode order by address, housenumber, surname, name";
 ....     
}
现在我用这个:

public OrderedEnumerableRowCollection<CustomerInfo.customerRow> GetCustomers(string zipcode) {
     string sql = "select id, name, surname, zipcode, housenumber where zipcode = @_zipcode";

     ....

     return (from c in datatable).OrderBy(c => c.Address).ThenBy(....).ThenBy(...);       
}
这是提高性能的正确方法吗

OrderedEnumerablerRowCollection与DataTable相比有哪些缺点


请告诉我您应该怎么做。

我想说这取决于SQL Server上的索引,哪一个更快。例如,如果对SQL Server进行索引,使其能够快速排序,或者数据非常小,那么数据表就可以了

我通常希望SQL server在这方面比.NET代码更高效


但从总体建筑角度来看。如果订购是一个UI问题,您的问题不清楚它是否是,那么订购客户端更有意义,特别是如果您在其他地方可能以不同的顺序使用datatable。

我认为按DB排序效率较低,因为硬盘比机器内存慢??我有一个带有子类别的类别,子类别有订单行。类别有排序代码和描述,也有订单行。类别存储在类别表中,订单行存储在订单行表00组A 00子组A 00-000订单行1等中,我想从中建立一个树,如何做到这一点??是SQL还是Linq?