關於表空間和表的關係

potoo發表於2011-05-02

突發奇想,把test1使用者的表空間設定為tb8,資料檔案設定為tb8所對應的tb8.dbf。

[@more@]然後,把tb8裡的表tbl1test加入資料。


然後更換預設表空間為user,繼續加入資料,發現資料依舊還是往tb8的表空間裡更新。離線再上線,依然如此。
重啟資料庫,預設表空間終於變為user了。於是在user了繼續建立表haha,加資料。

產生了一個疑問,為什麼我已經變換了資料檔案和表空間,為什麼還能查詢和操作原來在tb1表空間的資料呢?
資料檔案已經更換了,既然能查詢和操作,那肯定有個地方記載了使用者表和表空間或者資料檔案的對映關係。
調查了資料,發現在dba_segments檢視裡記載了這個內容。
OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
TEST1 HAHA TABLE USERS
TEST1 TBL1TEST TABLE TB8

現在,如果繼續向TBL1TEST加資料,那麼,資料會加到哪個表空間呢? 測試後發現,
答案是加到了原來的表空間TB8中。

再向在USERS空間建立的表HAHA中加資料的時候,加到了表空間users中。

結論:一個表,一旦被建立在哪個表空間
那麼它將終生屬於這個表空間,即使你的預設表空間發生變化,它也不會隨之變化。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24620620/viewspace-1049352/,如需轉載,請註明出處,否則將追究法律責任。

相關文章