如果你的數據庫中某一個表中的數據滿足以下幾個條件,那么你就要考慮創建分區表了。
1、數據庫中某個表中的數據很多。很多是什么概念?一萬條?兩萬條?還是十萬條、一百萬條?這個,我覺得是仁者見仁、智者見智的問題。當然數據表中的數據多到查詢時明顯感覺到數據很慢了,那么,你就可以考慮使用分區表了。如果非要我說一個數值的話,我認為是100萬條。
2、但是,數據多了并不是創建分區表的惟一條件,哪怕你有一千萬條記錄,但是這一千萬條記錄都是常用的記錄,那么最好也不要使用分區表,說不定會得不償失。只有你的數據是分段的數據,那么才要考慮到是否需要使用分區表。
3、什么叫數據是分段的?這個說法雖然很不專業,但很好理解。比如說,你的數據是以年為分隔的,對于今年的數據而言,你常進行的操作是添加、修改、刪除和查詢,而對于往年的數據而言,你幾乎不需要操作,或者你的操作往往只限于查詢,那么恭喜你,你可以使用分區表。換名話說,你對數據的操作往往只涉及到一部分數據而不是所有數據的話,那么你就可以考慮什么分區表了。
那么,什么是分區表呢?
簡單一點說,分區表就是將一個大表分成若干個小表。假設,你有一個銷售記錄表,記錄著每個每個商場的銷售情況,那么你就可以把這個銷售記錄表按時間分成幾個小表,例如說5個小表吧。2009年以前的記錄使用一個表,2010年的記錄使用一個表,2011年的記錄使用一個表,2012年的記錄使用一個表,2012年以后的記錄使用一個表。那么,你想查詢哪個年份的記錄,就可以去相對應的表里查詢,由于每個表中的記錄數少了,查詢起來時間自然也會減少。
但將一個大表分成幾個小表的處理方式,會給程序員增加編程上的難度。以添加記錄為例,以上5個表是獨立的5個表,在不同時間添加記錄的時候,程序員要使用不同的SQL語句,例如在2011年添加記錄時,程序員要將記錄添加到2011年那個表里;在2012年添加記錄時,程序員要將記錄添加到2012年的那個表里。這樣,程序員的工作量會增加,出錯的可能性也會增加。
使用分區表就可以很好的解決以上問題。分區表可以從物理上將一個大表分成幾個小表,但是從邏輯上來看,還是一個大表。
接著上面的例子,分區表可以將一個銷售記錄表分成五個物理上的小表,但是對于程序員而言,他所面對的依然是一個大表,無論是2010年添加記錄還是2012年添加記錄,對于程序員而言是不需要考慮的,他只要將記錄插入到銷售記錄表——這個邏輯中的大表里就行了。SQL Server會自動地將它放在它應該呆在的那個物理上的小表里。
同樣,對于查詢而言,程序員也只需要設置好查詢條件,OK,SQL Server會自動將去相應的表里查詢,不用管太多事了。
這一切是不是很誘人?
的確,那么我們就可以開始動手創建分區表了。
第一、創建分區表的第一步,先創建數據庫文件組,但這一步可以省略,因為你可以直接使用PRIMARY文件。但我個人認為,為了方便管理,還是可以先創建幾個文件組,這樣可以將不同的小表放在不同的文件組里,既便于理解又可以提高運行速度。創建文件組的方法很簡單,打開SQL Server Management Studio,找到分區表所在數據庫,右鍵單擊,在彈出的菜單里選擇“屬性”。然后選擇“文件組”選項,再單擊下面的“添加”按鈕,如下圖所示:
第二,創建了文件組之后,還要再創建幾個數據庫文件。為什么要創建數據庫文件,這很好理解,因為分區的小表必須要放在硬盤上,而放在硬盤上的什么地方呢?當然是文件里啦。再說了,文件組中沒有文件,文件組還要來有啥用呢?還是在上圖的那個界面,選擇“文件”選項,然后添加幾個文件。在添加文件的時候要注意以下幾點:
新聞熱點
疑難解答