sql server语言 - 提高查询性能,通过Linq-to-SQL排序记录



我正在使用查询从名为customers的表中获取记录,我想按address, housenumber, surname, name订购记录。

首先使用this (DataTable)

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(...);       
}

这是提高性能的正确方法吗?

OrderedEnumerableRowCollectionDataTable相比有什么(dis)优势?

请让我知道你应该怎么做。

我想说这取决于你的SQL Server索引哪个更快。例如,如果SQL Server被索引,它可以快速排序(或者数据非常小),那么数据表是好的。

我通常期望SQL服务器在这方面比。net代码更有效。

在一般的架构注释上。如果排序是UI关注的问题(如果是的话,从您的问题中不清楚),那么排序客户端更有意义,特别是如果您将在其他地方使用数据表(可能以不同的顺序)。

相关内容

  • 没有找到相关文章

最新更新