2014-02-17 17 views
0

我有一個SQL Server 2008 R2企業版,它包含單個數據庫 ,除了大型表(博客表)以外,它本身幾乎沒有任何東西 表是100 +百萬行(35列),每天增長約200,000行。我們需要將所有數據「在線」, 並且大多數列需要以某種方式進行搜索。將大表拆分爲一些表和跨表查詢

我想將表格按月份拆分成一些小表格。例如:

table1 :1/1/2013-1/31/2013 
table2 :2/1/2013-2/28/2013 
table3 :3/1/2013-3/31/2013 
table4 :4/1/2013-4/29/2013 
..... 
table12 :12/1/2013-12/31/2013 

假設用戶在2月(1個博客條目),4月(2個博客條目),10月(5個博客條目) ,11個月(無博客條目)後一些博客條目和12個月(無博客條目)

有一個要求:

假設當前日期爲12/20/2013.In爲了獲得有關該用戶最近10博客文章,我不得不UNION ALL 12表

我認爲這種設計效率低下,如此呢?如何設計?謝謝!

回答

1

你可能想而看看使用Partitioned Table and Index Concepts

分區使大型表或索引更容易管理,因爲 分區使您能夠管理和數據的訪問子集快速 和高效,同時保持數據收集的完整性。

SQL Server具有爲您內置的此功能,所以請勿嘗試自行管理此功能。

也期待在Designing Partitioned Tables and Indexes

請大家不是

分區表和索引僅適用於企業,則SQL Server的 開發和評估版。

但在你的情況下,這將是罰款。

+0

@ user441222,不,你沒有使用聯盟全部12 12。 只是正常選擇會做。雖然我不確定。請務必在分區之前保持備份 – KumarHarsh