在MS-SQL Server 2008上有一個數據庫,它逐年增長很多。保存數據庫歷史
我想要做的是:獲取一些數據並存儲在一個XML文件中,並將該文件存儲在一個表中,在同一個數據庫中。
這是個好主意嗎?你有什麼主意嗎?
謝謝。
在MS-SQL Server 2008上有一個數據庫,它逐年增長很多。保存數據庫歷史
我想要做的是:獲取一些數據並存儲在一個XML文件中,並將該文件存儲在一個表中,在同一個數據庫中。
這是個好主意嗎?你有什麼主意嗎?
謝謝。
的標準方法是建立一個新的數據庫(可能在不同的機器上),這將是你存檔數據庫和調度運行存儲過程的記錄移到存檔數據庫(僅記錄早說2年爲例或適合您的業務問題)。您將不得不復製表格的結構並保持兩個數據庫同步。你可以在你的sp中只包含最大的表,通常只有少數表會導致問題。
這樣,您仍然可以以適當的方式訪問您的歸檔數據並對其運行查詢。將數據存儲在數據庫中的xml對我來說不是一個好主意,因爲如果您需要舊數據,您將遇到困難時期。它也會給你帶來巨大的磁盤空間。
XML本質上是一種詳細的數據存儲方式,而不是本地存儲在表列/行結構中的方式。
例如,假設只存儲用戶的一個簡單的表...
<Users>
<User>
<UserID>1</UserID>
<Name>Joe Smith</Name>
<DOB>24.02.1973</DOB>
</User>
<User>
<UserID>2</UserID>
<Name>Joleen Smith</Name>
<DOB>13.10.1962</DOB>
</User>
...
...
你會好起來使您的架構的副本,並導出歸檔數據從這個第二個副本。這樣,你仍然可以查詢它,如果它是XML,那麼你將無法做到(容易)。
儘管我同意XML比僅以常規行/列存儲數據需要更多空間,但數據庫不僅僅存儲所有冗長的重複性XML標記。如果您要在數據庫文件上使用十六進制編輯器並查看一些XML數據,則會看到它正在使用某種編碼方案來節省一些空間。 – 2010-03-10 13:58:01
有意思的是,我忘記了SQL2008 SQL數據類型,也沒有意識到使用它可以減少數據佔用量。好喊。但是,我的建議仍然是一樣的,不要使用XML,爲歸檔數據使用單獨的DB架構/副本。 – CResults 2010-03-10 14:39:28
基本上你想要達到什麼目的?它是爲了節省磁盤空間嗎? – hallie 2010-03-10 13:04:01
是的,這是爲了節省一些磁盤空間 – rpf 2010-03-10 14:37:05