2012-03-03 35 views
2

我們有一個數據庫,當前大小爲1.5TB,並且每天增加一千兆字節的數據(文本文件),即500萬條記錄 - 並且每天增長如何設置SQL Server Enterprise以進行分區

它有許多列,但一個值得關注的一個是START_TIME其中有日期和時間 -

我們對運行的日期範圍很多查詢 -

我們保持90天值得記錄我們的數據庫裏面,我們有一個更大的表,其中包含所有記錄 -

個查詢對價值的記錄90天運行一次是相當快等,但查詢運行對所有的數據都慢 -

我要尋找一些非常高水平的答案,最佳實踐

我們也在思考關於升級到SQL Server企業和使用表分區,並根據月份(12)或天(31)

拆分分區最好的辦法是做到這一點?

虛擬物理,一個SAN,多少磁盤,多少個分區,等等 -

SAS

回答

2

你不想白天拆,因爲你將每月觸及所有分區。分區允許您而不是來觸摸某些數據。

爲什麼要分區?你能清楚地說明原因嗎?如果沒有(我認爲)你不應該這樣做。 分區並不會提高性能。它在一些情況下提高了性能,並且在其他情況下需要性能。

你需要明白你得到什麼,你有什麼鬆動。這裏是你獲得什麼

  • 整個分區
  • 只讀分區可以在不同的備份時間表

這裏跑的快的缺失是你寬鬆

  • 效率
  • 標準版
  • 不結盟查詢(一般)

這裏較低的性能是什麼停留在相同

  • 表現爲分區對齊的查詢和索引

如果你想分割,你可能會想要在日期或月份做,但是要以連續的方式進行。所以不要讓你的關鍵月份(日期)。做它(年(日期)+' - '+月(日期))。切勿再次觸摸舊分區。

如果您的舊分區是真正只讀的,請將其中的每個分區放在只讀文件組中並將其從備份中排除。這會給你真的很快備份和較小的備份。

因爲您只保留90天的數據,您可能希望每天都有一個分區。每天午夜你殺死最後一個分區並改變分區功能,爲新的一天騰出空間。

沒有足夠的信息來回答有關硬件的任何信息。

+0

我們現在只保留90天,因爲它使我們的查詢更快。 – 2012-03-03 20:53:56

+0

好的,所以你想保留所有的數據。分區將無助於在這裏查詢。它只會讓你快速殺死舊數據。插入和選擇與以前一樣快,如果不慢的話。 – usr 2012-03-03 20:54:44

+0

我們的目標是儘可能使舊數據的查詢速度更快,現在,我們將所有報告限制爲基於最後90天的數據 - 但如果我們可以在所有記錄中進行體面查詢,那麼我們可以將數據保存在一個分區表中。我們不需要對其進行分區,但我們認爲它會使查詢更快 – 2012-03-03 20:55:28