Sql Server RowNumber和表变量分页性能优化小计

直接让代码了,对比看看就了解了

当然,这种情况比较适合提取字段较多的情况,要酌情而定

 

性能较差的:

WITH #temp AS                       

(                                    

Select column1,column2,column3,column4,column5,column6,column7,column8,column9,column10, row_number() over (Order by column100 desc) as RowNumber                                     

From tables1 

Where .....                                  

)                                     

SELECT  * 

FROM #temp 

WHERE RowNumber BETWEEN 1601 and 1620  

ORDER BY RowNumber 

 

优化后,性能较好的

WITH #temp AS                       

(                                    

Select column1, row_number() over (Order by column100 desc) as RowNumber                                     

From tables1 

Where .....                                  

)                                     

SELECT  column1,column2,column3,column4,column5,column6,column7,column8,column9,column10

FROM tables1

where column1 in

(

select column1 from #temp

WHERE RowNumber BETWEEN 1601 and 1620                    

ORDER BY RowNumber 

) 

 

相关文章:Sql Server 2012 分页方法分析(offset and fetch)
原文地址:Sql Server RowNumber和表变量分页性能优化小计

你可能感兴趣的:(SQL Server)