2012-05-16 28 views
0

我沒有閱讀關於交易和報告數據庫的文章。 我們在其中用於報告(歷史的)目的和單臺事務 例如:爲了與領域
的OrderID,ORDERNAME,orderdesc,datereceived,dateupdated,確認訂單同一數據庫中的交易表和報告表

是不是這個表分割成一個好主意neworder和orderhistrory 新ordertable記錄當前的天交易(選擇,插入和更新活動在那一天。後來我們用訂單歷史

合併本表收到的訂單每毫秒這是一個推薦的方法。 你認爲這會最大限度地減少數據庫上的負載和處理時間?

回答

0

PostgreSQL支持基本的表分區,它允許將邏輯上的一個大表拆分成更小的物理碎片。 More info provided here

0

要回答第二個問題:否。將數據從一個地方移動到另一個地方是額外的負擔,否則,如果您使用跨國表進行報告,則不會有這種負擔。但是在做出這個決定之前,您還需要問一些其他問題。

  1. 這些報告運行的頻率如何? 如果您每小時運行一次這些報告,將它們保留在同一個表中可能有意義。但是,如果此報告需要一段時間才能運行,則需要注意不要將其他客戶端的資源作爲事務處理表使用。
  2. 這些報告需要最新的? 如果報告運行時間少於每天或每週,那麼在報告中提供最新數據可能並不重要。

而這就是報表所在的位置。我所見過的方法通常包括擁有「數據倉庫」,不管它是作爲單個表還是整個數據庫實現。這個倉庫會根據交易表中的數據填寫進度表,隨後觸發生成報告。這似乎是你建議的方法,而且是完全有效的方法。最終,你需要回答的一個問題是,當你想讓你的服務器處理負載時,需要。如果這可以在非高峯時段的時間表上完成,我會說去做。如果需要在任何給定的時間運行,則可能需要保留單表方法。

當然,沒有什麼說你不能這樣做。我已經看到一些系統具有在事務表上運行的小型按需報告,預定存儲歷史數據,然後針對該歷史數據運行長時間運行的報告。這實際上只是你想要數據的實時性問題。