我正在使用查询从名为customers的表中获取记录,我想按address, housenumber, surname, name
订购记录。
首先我使用了这个(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(...);
}
这是提高绩效的正确方法吗?
OrderedEnumerableRowCollection
vs DataTable
有什么(dis)优势?
请告诉我你应该怎么做。
答案 0 :(得分:0)
我会说这取决于SQL Server的索引,哪个更快。例如,如果SQL Server被索引以便它可以快速进行排序(或者数据非常小),那么数据表就可以了。
我通常希望SQL服务器在这方面比.NET代码更高效。
虽然在一般建筑上。如果排序是一个UI问题(从你的问题中不清楚它是否是),那么订购客户端更有意义,特别是如果你将在别处使用数据表(可能以不同的顺序)。