2011-11-02 52 views
4

當前我們正在使用Oracle來存儲日誌記錄信息。其中一列是存儲XML有效負載的Blob。我們每週都會對日誌模式進行歸檔,但我們仍然每週大約1TB。哪個數據庫空間效率最高

目標:減少數據庫的空間佔用

解決方案1: 將其放入BLOB之前壓縮XML載荷。

解決方案2: 查找數據庫(NoSQL的或其他關係數據庫)已經壓縮的默認數據。 JDBC驅動程序必須可用。

任何人都知道,適合的解決方案2中的數據庫?所以我們不需要修改應用程序,我們只需要更改數據庫並更新JDBC驅動程序。

+2

的插圖中的解決方案可能是使用UTL_COMPRESS Oracle包壓縮/解壓縮的斑點,你插入/檢索數據。 – nos

回答

6

Oracle支持一些不同程度的壓縮 - 適合於解決方案2以最小的努力。 (表/行/ LOB壓縮)

+0

對不起,劫持的問題,但從什麼版本? –

+0

這裏我們使用的是10g – Blake

+0

在11g之前,Oracle的表壓縮適用於數據倉庫,但對於OLTP應用程序可能效率不夠。即使在11g中,也需要額外的CPU週期,因此在投入生產之前一定要進行基準測試。 – APC

0

所有我知道,支持壓縮和JDBC的數據庫管理系統。

  • 甲骨文
  • SQL服務器
  • DB2
  • 的Teradata

的PostgreSQL依賴於底層操作系統的存儲上。您可能可以在壓縮文件系統上構建PostgreSQL表空間。

0

首先,我想說,如果你有企業,然後分區XML表,並定期備份和清理,(如果按日期範圍分區,然後刪除X分區以上)。如果這不是一個選項,你可以嘗試一個noSQL數據存儲。

有很多noSQL選項可用。我玩過的一部(尚未製作)是mongoDB。它以二進制JSON格式(BSON)存儲數據,並且可以進行壓縮。它似乎也在與bigger companies取得進展。前段時間我曾研究類似的b-tree平面文件系統,速度非常快。儘管如此,您將不會擁有與RDBMS相同的功能。關於mongoDB的好處在於它由10gen提供商業支持(同樣,不能說這種支持有多好,但這對於一些商店來說很重要)。

這裏有一個很好的article討論利弊/的更大的NoSQL方案的利弊在那裏。

不,我不爲10gen的工作;)當然,做更多的研究,並決定什麼是最適合您的需求

+0

分區是*額外成本選項*。企業版不免費。 – APC