中国开发网: 论坛: 程序员情感CBD: 贴子 234094
haitao
不过where rownum不是直接在子查询里加以限制,感觉会失去对IO开销的降低
我的猜测是,数据库系统每生成一个结果集,其实都是附有rownumber字段的
只是以前的数据库系统设计者比较短见,故意把它隐藏不公开
因此,即使用了where rownumber()>1M and rownumner()<1M+1K,其实内部还是先生成了整个记录集(>1M条记录),然后返回1K条,省掉的只是返回的传输量--本来是全部返回,再由调用者取1K条
不过,如果做到好,如有索引帮助,可以直接算出第1M条的记录依赖的数据块,直接生成第1M条开始的1K条记录。这样的效率才是最好的

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录