sql ORDER BY 多个字段,排序变慢几十倍,求解?

sql ORDER BY 多个字段,排序变慢几十倍,求解?,第1张

SQL 中使用order By后,查询慢,加上主键 和 需要排序的字段组合排序 速度有很大的提升

在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生成),并让其自动更新,查询时只查询该视图,速度就快了。(这样做就把聚合计算时间分散了、碎片化了)。仅供参考。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11594360.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存