oracle怎樣按物理順序提取記錄?(from itpub)
2024-08-29 13:48:19
供稿:網友
加入資料庫 上一主題 下一主題 作者主題 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. 加入資料庫 上一主題 下一主題