2007年12月3日
一:Oracle select * from (select rownum,name from table where rownum <=endIndex ) where rownum > startIndex二:DB2DB2分页查询SELECT * FROM (Select 字段1,字段2,字段3,rownumber() over(ORDER BY 排序用的列名 ASC) AS rn from 表名) AS a1 WHERE a1.rn BETWEEN 10 AND 20以上表示提...
2007年12月3日
前面的各种例子已经说明了分页查询语句的标准写法所带来的性能提升。这里简单总结一下,并简单的说明分页查询语句在何时无法带来性能提升。分页查询语句之所以可以很快的返回结果,是因为它的目标是最快的返回第一条结果。如果每页有20条记录,目前翻到第5页,那么只需要返回前100条记录都可以满足查询的要求了,也许还有几万条记录也符合查询的条件,但是由于分页的限制,在当前的查询中可以忽略这些数据,而只需尽快的返回前100条数据。这也是为什么在标准分页查询语句中经常会使用FIRST_ROWS提示的原因。对于行操作...
2007年12月3日
最后的例子说明内部循环包含排序的情况:SQL> CREATE TABLE T AS SELECT * FROM DBA_OBJECTS;表已创建。SQL> CREATE INDEX IND_T_OBJECT_NAME ON T (OBJECT_NAME);索引已创建。SQL> ALTER TABLE T MODIFY OBJECT_NAME NOT NULL;表已更改。SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'T')PL...
2007年12月3日
继续看查询的第二种情况,包含表连接的情况:SQL> CREATE TABLE T AS SELECT * FROM DBA_USERS;表已创建。SQL> CREATE TABLE T1 AS SELECT * FROM DBA_SOURCE;表已创建。SQL> ALTER TABLE T ADD CONSTRAINT PK_T PRIMARY KEY (USERNAME);表已更改。SQL> ALTER TABLE T1 ADD CONSTRAINT FK_T1_OWN...
2007年12月3日
这篇文章用几个例子来说明分页查询的效率。首先构造一个比较大的表作为测试表:SQL> CREATE TABLE T AS SELECT * FROM DBA_OBJECTS, DBA_SEQUENCES;表已创建。SQL> SELECT COUNT(*) FROM T;COUNT(*)----------457992首先比较两种分页方法的区别:SQL> SET AUTOT ONSQL> COL OBJECT_NAME FORMAT A30SQL> EXEC DBMS_...
2007年12月3日
Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用.
2007年12月3日
含义解释:
1、rownum是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,
依此类推,这个伪字段可以用于限制查询返回的总行数。
2、rownum不能以任何基表的名称作为前缀。