今天發現了自己的一個一直都錯誤的觀點

space6212發表於2019-01-30

一直以為物化檢視和普通檢視不同之處是物化檢視是物理存在的、實際佔用空間的,而普通檢視是邏輯意義上的。今天發現錯了:物化檢視也是一個邏輯上的概念,只不過在建立物化檢視時,它會自動生成一個與物化檢視名稱相同的表,實際資料都存在表裡

測試如下:


SQL> SELECT OBJECT_NAME,OBJECT_TYPE FROM USER_OBJECTS WHERE OBJECT_NAME='B';

OBJECT_NAME OBJECT_TYPE
-------------------------------------------------------------------------------- ------------------

SQL> CREATE MATERIALIZED VIEW B AS SELECT * FROM DUAL;

Materialized view created

SQL> SELECT OBJECT_NAME,OBJECT_TYPE FROM USER_OBJECTS WHERE OBJECT_NAME='B';

OBJECT_NAME OBJECT_TYPE
-------------------------------------------------------------------------------- ------------------
B TABLE
B MATERIALIZED VIEW

SQL> SELECT SEGMENT_NAME FROM USER_SEGMENTS WHERE SEGMENT_NAME='B';

SEGMENT_NAME
--------------------------------------------------------------------------------
B

如果建立物化檢視的時候,物化檢視與庫中已經存在的表重名,則會出錯。

謹記錄以上文字,謹防低階錯誤!

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

相關文章