2013-12-22 52 views
0

我有一個sql server 2012數據庫,它是asp.net MVC應用程序的後端,存儲客戶和訂單信息。該數據庫在高負載和高使用率下訪問。歸檔運營數據的最佳方法是什麼?

我知道有一個要求是能夠從數據庫生成臨時報告,訪問與MVC應用程序一起工作的相同數據。我擔心這會對數據庫服務器和數據庫本身產生什麼影響,包括鎖定等等。因此,它們是數據之間的區別,對於應用程序而言是可操作的,但對於報告而言,它的數據倉庫面向更多。

因此,我正在尋找我的選擇,以避免這樣的最佳方法。

我正在考慮在另一臺服務器上創建另一個數據庫,並在一天中定期使用sql作業將數據存檔到它。只有在這方面需要考慮的是,它需要維護,並且還需要一個依賴關係,以確保在源數據庫發生更改時對目標數據庫進行任何必要的更改。

在這種情況下還有哪些其他選擇對我開放,以及對此有何建議?什麼是最好的方法?

回答

0

您不必考慮自己的解決方案來保持數據庫同步。 SQL Server有構建方法來實現這一點。

Database Mirroring

Replication

Always On Availability Groups

如果你使用SQL Server 2012企業版的話,我會考慮一直開着如果沒有的話(事務)複製可用性組。這兩種解決方案都可以保留第二個只讀和接近實時的數據庫副本。

0

作爲Steve McConell suggests你應該不對性能做任何假設。在做出任何決定之前,您應該對其進行測量。在不知道實際性能開銷的情況下做出設計選擇並不是明智的選擇。因此,我建議在考慮使用複雜架構之前測量或模擬性能開銷,因爲您不知道是否值得遇到麻煩。

無論如何,我認爲你的方法是正確的。我將創建一個Windows服務,它定期從我的數據庫中檢索我需要的數據並將它們存儲在我的倉庫(新數據庫)中。我不認爲你會找到一個工具來保持兩個模式之間的一致性,除非你想要一個模式是另一個模式的精確副本。

我不知道您的確切需求,也許我的建議是一種矯枉過正,但我​​會鼓勵您考慮在數據倉庫中使用OLAP方法,您的報告數據將來自該數據倉庫。我必須警告您,這些系統面向的是真正的大數據和高級報告需求,但也許您可以從中獲得一些想法。由於您熟悉Microsoft生態系統,因此我建議您使用Business Intelligence Studio。您可以使用常規數據庫構建OLAP多維數據集作爲數據源並集成高級報告。

希望我幫了忙。

相關問題