转自:http://blog.csdn.net/s630730701/article/details/51902762 在SCOTT用户下,执行下面SQL; SELECT s.deptno,s.ename,s.sal,RANK() over(partition by s.deptno order by s.sal) as rank,DENSE_RANK() over(partition by s.deptno order by s.sal) as dense_rank,ROW_NUMBER()…
前段时间,同事遇到一个 Sql语句的问题,一个列表分页功能响应在30 s以上,看数据库里面的数据条数,数据量也不大,相关字段的一些索引也都有,可就是慢.于是找出具体的sql 语句出来分析,分页功能主要有个sql 语句,select 查询和 count 两条语句. select 查询字段的时候,速度挺快,执行时间在1 s以内 ,但是执行count(1)  的时候,速度巨慢,执行时间增加到10 s以上.奇怪的是count 语句为什么会比select 语句还慢呢.总之可以确定的就是count语句导致的…
我们知道SqlServer的查询优化器会将所执行的Sql语句的执行计划作缓存,如果后续查询可以复用缓存中的执行计划,那么SqlServer就会为后续查询复用执行计划而不是重新生成一个新的执行计划,因为复用执行计划的性能比生成执行计划的性能要高很多,所以SqlServer的这一特性可以大大提高Sql语句的执行效率.特别是对于存储过程,因为存储过程的执行计划是在存储过程第一次执行的时候生成的,存储过程的执行计划生成后就会被缓存到SqlServer的执行计划列表中,如果以后存储过程再被执行,那么存储过…
一个SQL 语句的执行顺序 1.From (告诉程序 来自哪张表  如果是表表达式 依旧是如此顺序) 2.Where(条件筛选  谓词筛选 ) 3.Group by(分组) 4.Having(分组  谓词筛选 ) 5.Select (表达式) 6.表达式(开窗函数 聚合函数 等等) 7.Distinct(去重复) 8.ORDER BY 9.TOP/OFFSET-FETCH…
oracle分析函数Rank, Dense_rank, row_number 分析函数2(Rank, Dense_rank, row_number)   目录 =============================================== 1.使用rownum为记录排名 2.使用分析函数来为记录排名 3.使用分析函数为记录进行分组排名 一.使用rownum为记录排名: 在前面一篇<Oracle开发专题之:分析函数>,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题:…
rank,dense_rank,row_number区别 一:语法(用法):     rank() over([partition by col1] order by col2)      dense_rank() over([partition by col1] order by col2)      row_number() over([partition by col1] order by col2)      其中[partition by col1]可省略. 二:区别    三个分析函…
http://www.cnblogs.com/wuyisky/archive/2010/02/24/oracle_rank.html 目录===============================================1.使用rownum为记录排名2.使用分析函数来为记录排名3.使用分析函数为记录进行分组排名 一.使用rownum为记录排名:在前面一篇<Oracle开发专题之:分析函数>,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题: ①对所有客户按订单总额进行排名…
character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数据库字符集. character-set-table:数据库表字符集. 优先级依次 character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数据库字符集. character-set-table:数据库表字符集. 优先…
本文通过例子演示了Oracle分析函数 —— rank, dense_rank, row_number的用法. //首先建score表 create table score( course   nvarchar2(20), stu_name nvarchar2(20), score   number(2)); //插入数据 insert into score values ('Math','Tough1',95); insert into score values ('Math','Tough2…
1.开窗函数和分组函数的区别 分组函数是指按照某列或者某些列分组后进行某种计算,比如计数,求和等聚合函数进行计算. 开窗函数是指基于某列或某些列让数据有序,数据行数和原始数据数相同,依然能曾现个体数据的原貌. 事例数据 create table student_scores( stu_id varchar2(10),--学号 stu_name varchar2(20),--姓名 course varchar2(5),--课程 score number(5,2),--分数 constraint p…