--分頁第一步 獲取資料實體地址
select t.rowid rid, t.lastdate from t_test t order by t.lastdate desc;
--分頁第二步 取得最大頁數
select rownum rn, rid
from (select t.rowid rid, t.lastdate
from t_test t
order by t.lastdate desc)
where rownum <= 10;
--分頁第三步 取得最小頁數
select rn,rid
from (select rownum rn, rid
from (select t.rowid rid, t.lastdate from t_test t order by t.lastdate desc)
where rownum <= 10)
where rn > 5;
--分頁第四步 再根據實體地址,查詢出具體資料
select t1.*,t1.rowid
from t_test t1
where t1.rowid in
(select rid
from (select rownum rn, rid
from (select rowid rid, t.lastdate from t_test t order by t.lastdate desc)
where rownum <= 10000)
where rn > 5000);在8i以前rowid由file#+block#+row# 組成,占用6個bytes的空間,10 bit的file# ,22 bit 的block#,16 bit 的row#。
其中oracle的dba(data block address)是32 bits的,包括10 bit 的 file# 和 22 bit 的block#。
由於不存在0編號檔案,oracle中的檔案最大數量2^10-1=1023
而datafile能達到的最大size就是2^22*db_block_size
如果db_block_size為4k的datafile max size就是16g
如果db_block_size為8k的datafile max size就是32g
從oracle 8開始rowid變成了extend rowid,由data_object_id#+rfile#+block#+row#組成,占用10個bytes的空間,
32bit的 data_object_id#,10 bit 的 rfile#,22bit 的 block#,16 bit 的 row#.由於rowid的組成從file#變成了rfile#,
所以資料檔案數的限制也從整個庫不能超過1023個變成了每個data_object_id不能超過1023個資料檔案。當然,你或許要問,
為什麼oracle不調整rowid中表示 file# 的 bit數量,這個應該是由於相容性的引起的,在 oracle7 的索引中儲存的rowid
就是 file# + block# + row# ,因為這樣處理後關於索引的儲存,oracle8和oracle7沒有發生變化。
雖然oracle使用了extend rowid,但是在普通索引裡面依然儲存了bytes的rowid,只有在global index中儲存的是10bytes
的extend rowid,而extend rowid也是global index出現的乙個必要條件。
1. rowid基本概念:
1) rowid是乙個偽列,是用來確保表中行的唯一性,它並不能指示出行的物理位置,但可以用來定位行
2) rowid是儲存在索引中的一組既定的值(當行確定後)。我們可以像表中普通的列一樣將它選出來
3) 利用rowid是訪問表中一行的最快方式
4) rowid需要10個位元組來儲存,顯示為18位的字串。
2. 什麼情況下rowid會發生變化
一般來說,當表中的行確定後,rowid就不會發生變化。 但當如下情況發生時,rowid將發生改變:
1) 對乙個表做表空間的移動後
2) 對乙個表進行了exp/imp後
高速排序 解析
高速排序法原理也是用了分治法,主要原理是將陣列分為a p.q 1 和a q 1.r 然後調整元素使得a p.q 1 小於等於q,也小於等於a q 1.r 然後不斷的遞迴,到最後就排序完畢。上 quicksort.cpp 定義控制台應用程式的入口點。include stdafx.h includeus...
高速排序 解析
高速排序法原理也是用了分治法,主要原理是將陣列分為a p.q 1 和a q 1.r 然後調整元素使得a p.q 1 小於等於q,也小於等於a q 1.r 然後不斷的遞迴,到最後就排序完畢。上 quicksort.cpp 定義控制台應用程式的入口點。include stdafx.h includeus...
分頁效果解析
先來個加密解密 crypt encrypt request secret crypt decrypt encryptedvalue hash 單向加密 判斷 hash make request newpassword hash check plain text hashedpassword 輔助函式...