2012-06-07 53 views
2

我不是數據庫管理員,所以我可能在說明這裏的一些東西時是錯誤的。在oracle中縮小數據庫11g

在SQL Server中,當我們在數據庫中添加大量數據,然後當我們刪除它時,數據文件(.mdf文件)或數據庫(或稱爲它的任何內容)的大小不會減少到原始大小。我們需要縮小它。

在Oracle中做同樣的基礎工作嗎?如果是的話,我應該如何去縮減Oracle 11g數據庫?

+0

EXP中有一個COMPRESS EXTENTS = Y選項 - 實際上並不確定如何向前移動到數據泵。 – Randy

+0

@Randy,我不明白你在說什麼。你能否詳細說明一下。 – samar

+0

壓縮範圍是一個導出/導入選項,不會影響底層數據文件的大小。 compress extents選項指定,在導入時,所有表數據將被放置在初始範圍內。 – xelco52

回答

6

來自Oracle文檔的完整說明:Reclaiming Wasted Space。對於短版:

「你可以在表收縮空間,索引組織表,索引, 分區,子分區,物化視圖或物化視圖日誌 你做到這一點使用ALTER TABLE,ALTER INDEX。 ,ALTER MATERIALIZED VIEW, 或ALTER MATERIALIZED VIEW LOG語句與SHRINK SPACE 子句。

因此,在運行Oracle Segment Advisor以推薦需要縮小的區域之後,類似以下內容會縮小名爲mytable的表中的空間。

SQL> alter table mytable enable row movement; 
Table altered 

SQL> alter table mytable shrink space; 
Table altered 
+0

所以基本上你試圖說整個數據庫不能像SQL服務器那樣直接收縮。個人表需要完成。對?這裏出現了一個問題,如果我運行上面提到的2個命令,它不會改變表中的數據,對吧?它不應該只是爲了讓我滿意而確認一次。 – samar

+0

正確,整個數據庫不能像SQL Server一樣收縮。數據已移動,但未更改。我希望你能在我提供的鏈接上閱讀oracle文檔。 – xelco52

+0

另外,您不想僅運行上述示例語句。您應該運行Segment Advisor並採取相應措施。 – xelco52

相關問題