2013-02-27 60 views
0

我一直在使用SQL Server 2008作爲Windows桌面應用程序的數據庫。我正在重新設計產品,我可能會繼續使用SQL Server 2008或MySQL。SQL Server 2008歸檔

所以我想到一個通用的歸檔解決方案。在SQL Server 2008中是否有類似於SqlDump的東西?目前我沒有使用ORM,我可能打算在未來幾天使用實體框架。

基本上我想刪除舊的條目,每當已被生成的報告,我必須恢復它以及..

我也有一個問題在這裏:如果什麼數據庫模式的變化?我們如何恢復舊的數據庫?

如果沒有通用的解決方案我將不勝感激具體到SQL Server 2008

+0

我會考慮一個設計,如果可能,不需要使用「舊數據」。除非有大量的數據使用情況,否則保留所有相關記錄可能是謹慎的。就這個問題而言,一個特殊的用例並沒有真正被列出來。對於一個「[standalone]桌面應用程序」,我會建議針對MySQL。 SQL Server Express,SQLite和Firebird在「無服務器」/嵌入式配置中運行良好。 – 2013-02-27 05:42:02

+0

好吧,讓我給你一個場景。讓我們專門針對SQL 2008。我想要將用戶點擊的數據存檔在用戶界面中,用戶也可以選擇日期,直到它被存檔。存檔後行必須被刪除(只是爲了提高性能)。我應該能夠將存檔數據庫傳輸到另一臺PC並在那裏恢復。第二種情況是模式更改。如果用戶嘗試使用舊數據庫恢復舊的schema.how 2處理這個?它也是一個客戶端服務器體系結構。有多個組件(客戶端)連接到服務器和數據庫。 – user1687824 2013-02-27 05:48:24

+0

對於具有合理行數的正確設計的模式,刪除行將*不會「提高性能」。另外,現在磁盤空間相對便宜......所以不要引入問題,除非它是可測試/可證明的情況。 – 2013-02-27 06:08:13

回答

2

歸檔的話題解決方案,在一般情況下,是這個論壇太寬泛。但我要把我的兩分錢。我發現最好是將記錄歸檔(即將記錄從一個表格移動到另一個表格),而且通常在不同的數據庫中。

這將處理架構問題,因爲您可以修改歸檔表的架構並使其保持同步。

它還允許您編寫實際包含存檔數據作爲選項的專用報告。

它還允許您以不同於生產數據庫的方式爲存檔數據庫設置服務器體系結構。他們甚至不必在同一臺服務器上。他們甚至不需要聯繫。建立一個.NET應用程序,根據您的需要定期將行從一個數據庫移動到另一個數據庫將非常簡單。

+0

感謝您的回覆。如果我想將歸檔的數據庫從一臺PC移動到另一臺? – user1687824 2013-02-27 05:39:50

+0

@ user1687824:好吧,如果你利用我提到的斷開連接的方法,它不應該是一個問題。您只需要以某種方式連接到網絡上的兩個SQL Server。 – 2013-02-27 11:03:45