最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且在翻第二页的时候也是要这么多的时间,这肯定是不能接受的,也是让现场用SQLServerProfiler把语句抓取了上来。 用ROW_NUMBER()进行分页 我们看看现场抓上来的分页语句: selecttop20a.*,ag.NameasAgentServ...
一、ROW_NUMBER() over(partition by columnname order by columnname): select ROW_NUMBER()over(order by name) as num,* from #Tmp 可以得到按name排序的结果集。 ROW_NUMBER() over()还有一种用法,可以针对某列进行分组排序。 下面结果可以看到张三有1和2两个排序,而其他的名字排序都只有1。 select RO...
语法:ROW_NUMBER () OVER ([ ] ) 。 备注:ORDER BY 子句可确定在特定分区中为行分配唯一 ROW_NUMBER 的顺序。 参数: :将 FROM 子句生成的结果集划入应用了 ROW_NUMBER 函数的分区。 :确定将 ROW_NUMBER 值分配给分区中的行的顺序。 返回类型:bigint 。 ROW_NUMBER()常用的几种情况 1.使用row_number(...
最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且在翻第二页的时候也是要这么多的时间,这肯定是不能接受的,也是让现场用SQLServerProfiler把语句抓取了上来。 用ROW_NUMBER()进行分页 我们看看现场抓上来的分页语句: selecttop20a.*,ag.NameasAgentServ...