oracle怎樣按物理順序提取記錄?(from itpub)
2024-08-29 13:30:02
供稿:網友
 
 加入資料庫   上一主題   下一主題 作者主題      x_x
長期郁悶中......
注冊日期: 2002 oct
來自: 福州
發帖數量: 458
怎樣按物理順序提取記錄? 
rt
select * from tabname和select /*+first_rows*/ from tabname都是嗎?
謝謝
__________________
不是因為寂寞才想你,而是因為想你才寂寞。孤獨的感覺之所以如此之重,只是因為想得太深!
 04-08-13 18:24 秦淮夜月
資深會員
 
注冊日期: 2001 sep
來自: 
發帖數量: 571
什么是物理順序?
是在block里面的排列順序?還是記錄產生的時間順序?
__________________
戰爭帶來財富,財富帶來下一次戰爭
 04-08-13 22:36 li2
高級會員
 
注冊日期: 2002 feb
來自: 
發帖數量: 871
有點問題,如果是并行查詢,查詢合并時是不是也按物理次序?
__________________
君子終日乾乾,夕惕若,厲無咎
當我沉默著的時候,我覺得充實;我將開口,
同時感到空虛
 04-08-14 10:16 x_x
長期郁悶中......
注冊日期: 2002 oct
來自: 福州
發帖數量: 458
quote: 最初由 秦淮夜月 發布
什么是物理順序?
是在block里面的排列順序?還是記錄產生的時間順序? 
應該是記錄產生的時間順序
其實我想問的是,select * from tabname每次取的數據的順序是不是一樣的,是按什么順序取的? 
__________________
不是因為寂寞才想你,而是因為想你才寂寞。孤獨的感覺之所以如此之重,只是因為想得太深!
 04-08-14 10:53 秦淮夜月
資深會員
 
注冊日期: 2001 sep
來自: 
發帖數量: 571
quote: 最初由 x_x 發布
應該是記錄產生的時間順序
其實我想問的是,select * from tabname每次取的數據的順序是不是一樣的,是按什么順序取的? 
我感覺select * from table是按block一直掃描下去的(沒有用實驗驗證過,但從效率角度看應該如此),由于后面插入的記錄可能會用到前面delete騰空的空間,所以這就不一定是按時間順序去排列了
事實上關系型數據庫都強調物理無關性,所有操作只保證邏輯層,如果你想按時間順序提取行,最好還是加個列去記錄行的生成時間 
__________________
戰爭帶來財富,財富帶來下一次戰爭
 04-08-14 13:21 grassbell
深入討論區斑竹
 
注冊日期: 2003 jun
來自: 北京,廈門
發帖數量: 1018
quote: 最初由 秦淮夜月 發布
我感覺select * from table是按block一直掃描下去的(沒有用實驗驗證過,但從效率角度看應該如此),由于后面插入的記錄可能會用到前面delete騰空的空間,所以這就不一定是按時間順序去排列了
事實上關系型數據庫都強調物理無關性,所有操作只保證邏輯層,如果你想按時間順序提取行,最好還是加個列去記錄行的生成時間 
select * from table 返回值的順序:
同一個block 中的rows 是按照 row 在block header 的row dictionary的排列順序讀出來的。delete 后再 insert ,后來的row 可能會使用deleted row在row dictionary的位置。
但是block之間的順序,我推測是按照blocks在segment中的排列順序。 
__________________
donny's email 
不是自己的,多研究,多做實驗,把心得寫出來,變成自己的
 04-08-14 16:03      grassbell
深入討論區斑竹
 
注冊日期: 2003 jun
來自: 北京,廈門
發帖數量: 1018
可以參考:
http://www.itpub.net/112239.html
http://www.itpub.net/247459.html
__________________
donny's email 
不是自己的,多研究,多做實驗,把心得寫出來,變成自己的
 04-08-14 16:05      所有時間均為 . 現在時間是 02:21.      加入資料庫   上一主題   下一主題