我在SQL Server 2008 R2
上,我目前正在開發一個數據庫結構,其中包含一些產品的季節性值。如何在SQL Server上處理季節性數據庫值的歸檔
通過季節性我的意思是這些值將在客戶使用的特定日期後沒有用。但是,這些值將被內部的東西用於統計結果。
在銷售網站上,我們將添加產品搜索功能,我的目標之一是儘可能優化此搜索。 但是,數據庫表內的行數越多,搜索速度越快。因此,我考慮歸檔未使用的值。
我可以自動處理SQL Server作業的自動歸檔。那裏沒問題。但我不確定我應該如何歸檔這些值。
我可以想出最好的方法是我在同一個數據庫中創建另一個表,並將它們放在那裏。
實施例:
我的主要表名是
ProductPrices
並且有一個主密鑰已經被 該數據庫定義。然後,我創建了另一個名爲ProdutcPrices_archive
的表。我爲此表 創建了一個主鍵字段,並且與ProductPrices
表相同的列除了ProdutPrices
主鍵值。我認爲這對於 存檔值(我認爲正確嗎?)是沒有用的。內部使用,我考慮
UNION
把兩個表值一起 (是正確的方法是什麼?)。
該數據庫意欲長時間使用,應該用最佳結構設計。從長遠來看,我不確定我是否會錯過一些東西。
任何意見,將不勝感激。
」但是,數據庫表中更多的行,這個搜索將變得更快「 - 可能但不一定。你所描述的設計表明所有對錶格的訪問將通過一個外鍵去「產品」;在這種情況下,通過將更多數據插入同一個表中,您幾乎肯定不會注意到速度降低。 我甚至不會爲這個場景進行優化,直到你能證明你有一個性能問題 - 我喜歡在我的數據庫中填充10倍於實際預期的測試數據,然後測量。 –
按照下面的鏈接檢查汽車檔案過程。 http://stackoverflow.com/questions/18908903/auto-maintain-archive-purge-purge-on-source-table-in-sql-server –