sql server 性能问题总结
2017-04-27 17:53
176 查看
1:刚刚看了sqlServer性能优化的书,公司席哥有正好开会总结这个问题,我把会议记录和读书内容大体结合提炼一下大家分享
2、in 和exists:
查询很慢,可以看到用了16s,看了一下执行计划:哈希匹配占消耗的的71%,由于in是hash匹配的,我猜是以为它,我把它改成exists了:
...where exists (select MAX(orderdate) from...
然后秒出了
--in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
3、当我还在纠结用于in慢 还是exists错误时,我发现了新大陆:partition
by 与ROW_NUMBER()函数,超乎我的想象在上边问题2中关联如下:select id,pharmacyId,matId,purPrice from t_purchaseitem
where pharmacyId=2950 and id in (select MAX(id) from t_purchaseitem where pharmacyId=2950 group by matId)
慢的要死,可是我把in改成exists方式时又不能过滤MAX(ID),此时霞姐给了我启发,把上边的sql改为:
select pharmacyId,matId,purPrice from(
select ROW_NUMBER() over(partition by matId order by id desc) num,id, pharmacyId,matId,purPrice from t_purchaseitem where pharmacyId=2950) aa where num=1
虽然sql变长了,可是查询速度从39秒变成了秒出,用exists还要4秒那。相比较来说简直神速呀。简单的介绍:ROW_NUMBER()
OVER (ORDER BY pubtime desc) AS RowNumber其实就是根据pubtime的大小排序,然后将RowNumber标上行号。一般此方法多用与高效率分页
两个函数详细介绍看我转载的文章:SQL
Server数据库partition by 与ROW_NUMBER()函数使用详解
》》》》》持续更新中》》》》》》
2、in 和exists:
查询很慢,可以看到用了16s,看了一下执行计划:哈希匹配占消耗的的71%,由于in是hash匹配的,我猜是以为它,我把它改成exists了:
...where exists (select MAX(orderdate) from...
然后秒出了
--in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
3、当我还在纠结用于in慢 还是exists错误时,我发现了新大陆:partition
by 与ROW_NUMBER()函数,超乎我的想象在上边问题2中关联如下:select id,pharmacyId,matId,purPrice from t_purchaseitem
where pharmacyId=2950 and id in (select MAX(id) from t_purchaseitem where pharmacyId=2950 group by matId)
慢的要死,可是我把in改成exists方式时又不能过滤MAX(ID),此时霞姐给了我启发,把上边的sql改为:
select pharmacyId,matId,purPrice from(
select ROW_NUMBER() over(partition by matId order by id desc) num,id, pharmacyId,matId,purPrice from t_purchaseitem where pharmacyId=2950) aa where num=1
虽然sql变长了,可是查询速度从39秒变成了秒出,用exists还要4秒那。相比较来说简直神速呀。简单的介绍:ROW_NUMBER()
OVER (ORDER BY pubtime desc) AS RowNumber其实就是根据pubtime的大小排序,然后将RowNumber标上行号。一般此方法多用与高效率分页
两个函数详细介绍看我转载的文章:SQL
Server数据库partition by 与ROW_NUMBER()函数使用详解
》》》》》持续更新中》》》》》》
相关文章推荐
- SQL SERVER中一些常见性能问题的总结
- SQL SERVER中一些常见性能问题的总结(转载)
- Sql server一些常见性能问题的总结
- Sql server一些常见性能问题的总结
- Sql server常见性能问题的总结
- SQL Server中一些常见性能问题的总结(转)
- Sql server一些常见性能问题的总结
- Sql server常见性能问题的总结
- [转]SQL SERVER中一些常见性能问题的总结
- SQL SERVER中一些常见性能问题的总结[转]
- SQL SERVER中一些常见性能问题的总结
- 【转】SQL SERVER中一些常见性能问题的总结
- Sql server一些常见性能问题的总结
- Sql server一些常见性能问题的总结
- SQL SERVER中一些常见性能问题的总结(转载)
- Sql server一些常见性能问题的总结
- [转]SQL Server一些常见性能问题的总结
- SQL SERVER中一些常见性能问题的总结
- Sql server一些常见性能问题的总结()
- SQL SERVER中一些常见性能问题的总结