2010-03-26 32 views
1

我是java系統設計師。由於我們有大型項目要緊,
這些項目是沒有網頁的java api。1 oracle模式支持每天大量的請求,這是安全的嗎?

我設計創建通用流引擎來支持所有項目。
這個想法使用1個oracle模式,具有一般事務表。 等人控制路由表。

他們幾乎完成。但是DBA團隊擔心他會受到維護對1個模式的非常大的請求。

1個原因是如果有問題是一些表。他必須脫機修復表空間。這是問題,因爲所有項目都會受到影響。

我試圖說服每個表的分割數據分區由project_code &「要刪除的月份數」。

Eaxmple分區:

PROJ1_05 PROJ1_06 PROJ1_07
PROJ2_05 PROJ2_06 PROJ2_07

,所有事務表將存儲在它的分區。

所以,如果表中的任何一部分有問題,那麼他應該脫機一些分區,並使用同一個表的另一個項目應該能夠服務每天

事務應該圍繞每天10Meg記錄。

這是個好主意嗎?
如果我必須使用1個模式,那麼策略是什麼?
你有什麼評論嗎?

+1

模式是一個用戶。用戶可以有多個表和多個表空間。請更詳細地解釋您的擔憂,因爲此刻他們並不真正理解。 – APC 2010-03-27 18:14:29

+0

您的DBA團隊是否強制執行策略,其中每個模式都可以使用一個且只有一個表空間? (例如,也許你沒有在你的DDL腳本中指定表空間,這意味着用戶的默認表空間總是被使用) - 這可能是他們擔心只有一個模式的原因。如果是這樣,他們正在吠叫錯誤的樹 - 模式的數量與性能無關,它們應該根據每個表和索引的存儲需求靈活使用不同的表空間。 – 2010-03-29 03:24:44

回答

1

大多數情況下,您不應該在單個模式下工作時遇到任何問題。這實際上取決於你想如何構建你的應用程序。如果您試圖在不同客戶之間複製相同類型的應用程序,可以針對在不同模式中複製的相同結構以及將其放入一個模式並處理基於客戶的安全性的情況。

通過創建單獨的表對數據進行分區會使編碼比需要的更加複雜,並且解決讓數據庫做它最擅長處理數據集的工作。我會對這種方法非常謹慎。如果您擁有Oracle的部分企業許可證,則可以執行表分區以提高性能,但單獨的表聽起來似乎不太好。

爲什麼你要進入你的項目,認爲你會定期離線表空間?如果項目設計良好並且測試良好,則不應該經常需要在生產時間內將表空間脫機並在桌面上工作。定期維護應該是預期和計劃的,而不是在飛行中完成的。

對於每種類型的數據設計,我都會使用1個schema/1表格,除非有真正令人信服的理由來複制結構並隔離到不同模式(法律或合同要求)。

就性能而言,您必須對其進行測試才能看到實際結果以及通過調整得到改進的空間。

+1

分區選項*是* Enterprise Edition許可證的額外費用*。 – APC 2010-03-27 07:36:18

+0

@APC:和我聽到的相當美元。我們的一個人寫了一個完全可定製的審計系統,在發現我們沒有將其作爲我們許可證的一部分之前,它們在很大程度上依賴於分區。它去了死亡的項目墓地。 – 2010-03-27 14:27:20