前言:
過去,因緣際會下,參加微軟MVP SKY開的資料庫相關課程,從課程中聽到關鍵字"資料表分割"(Partition table),對此相當有興趣。課後Sky也大方的分享有關資料分割
相關知識與經驗。
最近因為專案需求,需要處理大量資料,雖然已經建立索引(Index),但在讀取資料時,
需要花費些許時間。為了避免專案上線後,可能面臨更多更大量資料導致系統運作速度
緩慢,必須採取一些策略進行改善。
因此,我就開始嘗試資料表分割這個功能。
藉由一些教學文章,得知必須先建立檔案後,才能進行資料表分割。
方法:
建立檔案群組與檔案:
Step.1 右鍵點選資料庫,選擇屬性。Right-click the database and select Properties
Step.2 選擇 "檔案" 屬性,點選下方 "加入"。
Select File and click Add
Step.3 輸入"邏輯名稱"。
Enter the logic name
Step 4.選擇"檔案群組",點選"<新增檔案群組..."。
Selecy filegroup dorpdownlist, and then select add new filegroup.
Step 5.輸入檔案群組名稱。
Enter filegroup name
Step 6.點選"確定",完成。
Click ok, and then click finish.
建立資料分割1 ( using datetime ):
Step.1 右鍵點選資料表,選擇 "儲存體 > 建立資料分割"Step.2 點選"下一步"
Step.3 選擇資料分割的欄位。 若選擇類行為datetime,後續"設定界線"部分可以選擇日期;
其他類型則不能選擇"設定界線"。
Step.4 輸入"新的資料分割函數"名稱。
Step.5 輸入"資料備分割配置"名稱
Step.6 選擇範圍為左界線與右界線。依據需求設定下方"檔案群組"與"界線值"。
因為我們選擇分割資料類行為datatime,因此我們可以藉由"設定界線"按鈕選擇日期。
Step.7 選擇日期界線。
Step.8 輸入完成後,確認最後一列有選擇檔案群組,點選估計儲存體可以觀看需要空間
與可用空間。點選下一步。
Step.9 選擇建立模式,有建立指令碼、立即執行與排程。
我們選擇建立指令碼,點選完成。
Step.10 我們選擇產生指令碼方式,即可在SQL Server Management Studio上看到完整Script。
建立資料分割2 ( using int or string):
Step.1 右鍵點選資料表,選擇 "儲存體 > 建立資料分割"Step.2 點選"下一步"
Step.3 選擇資料分割的欄位。
Step.4 輸入"新的資料分割函數"名稱。
Step.5 輸入"資料備分割配置"名稱
Step.6 選擇範圍為左界線與右界線。依據需求設定下方"檔案群組"與"界線值"。
因為我們選擇分割資料類型為int,因此我們不可以使用"設定界線"按鈕。
Step.7 選擇建立模式,有建立指令碼、立即執行與排程。
點選下一步。
Step.8 點選完成。
Step.9 執行中
Step.10 執行完成
Step.11 右鍵點選資料表,選擇屬性。
Step.12 在儲存體的部分,可以看到"資料分割"相關內容。
執行結果:
經過測試:原先在沒有執行資料分割的資料表,執行前後時間差約6-7秒鐘,優化執行速度。
反應時間從原來11秒鐘,降至3秒鐘。
參考資料:
1.建立分割區資料表及索引--
謝謝!
0 留言