在SQL Server查询数据测试,数据约三万条, 数据字段以时间倒序排序,
sql:
select ID, column1,column2,column3,record_date from table where ...... order by record_date desc
此时查询数据需要15秒左中 ,将orderby 修改为 order by ID desc,record_date desc 后,查询的数据一秒不到即可查询出来
在linq中,排序的时候,一定要用new 排序的对象,不然ID 将不会被加入到SQL中
linq:
var t = from a in t where ......select a
t = t.orderby(t=>t.ID).orderby(t=>t.record_date) 此处的ID在解释成SQL时,不会在SQL中
应写为:
t = t.orderby(t=>new{t.ID,t.record_date})
分组聚合就会慢一些,首先看看where条件中的列名是否建立了索引、索引是否起作用。如实在不行,可以考虑使用物化视图(使用你这个sql生成),并让其自动更新,查询时只查询该视图,速度就快了。(这样做就把聚合计算时间分散了、碎片化了)。仅供参考。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)