[發(fā)明專利]基于MSSQLSERVER表分區(qū)及自動維護方法及系統(tǒng)有效
| 申請?zhí)枺?/td> | 201310750793.4 | 申請日: | 2013-12-30 |
| 公開(公告)號: | CN103699676B | 公開(公告)日: | 2017-02-15 |
| 發(fā)明(設(shè)計)人: | 余有能 | 申請(專利權(quán))人: | 廈門市美亞柏科信息股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 深圳市博銳專利事務(wù)所44275 | 代理人: | 張明 |
| 地址: | 361000 福建省廈門*** | 國省代碼: | 福建;35 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 mssqlserver 分區(qū) 自動 維護 方法 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫應(yīng)用領(lǐng)域,尤其是指一種基于MSSQL?SERVER表分區(qū)及自動維護方法及系統(tǒng)。?
背景技術(shù)
MSSQL?SERVER是指微軟的SQL?Server數(shù)據(jù)庫服務(wù)器,它是一個數(shù)據(jù)庫平臺,提供數(shù)據(jù)庫的從服務(wù)器到終端的完整的解決方案,其中數(shù)據(jù)庫服務(wù)器部分,是一個數(shù)據(jù)庫管理系統(tǒng),用于建立、使用和維護數(shù)據(jù)庫。而在MSSQLSERVER中,表分區(qū)(PARTITION)是MSSQL?server數(shù)據(jù)庫的一個組件,該技術(shù)最早在MSSQL?server2005企業(yè)版中引入,這個過程是把數(shù)據(jù)按某種標準劃分成區(qū)域存儲在不同的文件組中,使用分區(qū)可以快速而有效地管理和訪問數(shù)據(jù)子集,從而使大型表或索引更易于管理。就訪問MSSQL?server數(shù)據(jù)庫的應(yīng)用而言,邏輯上講只有一個表,但在物理存儲上可能由多個物理的數(shù)據(jù)文件組成。每個文件組存放一個數(shù)據(jù)分區(qū)的數(shù)據(jù),每個數(shù)據(jù)分區(qū)都是一個獨立的對象,可以獨自處理,也可以作為一個更大對象的一部分進行處理。?
目前,MSSQL?server展到MSSQL?server2012,數(shù)據(jù)表分區(qū)的方式仍然采用MSSQL?server2005的方法進行操作。MSSQL?server的數(shù)據(jù)表分區(qū)種類很單一,類似于oracle/mysql的range分區(qū)。MSSQL?server數(shù)據(jù)表分區(qū)主要通過以下步驟來實現(xiàn):?
創(chuàng)建分區(qū)函數(shù)以指定如何分區(qū)使用該函數(shù)的表;?
創(chuàng)建分區(qū)架構(gòu)以指定分區(qū)函數(shù)的分區(qū)在文件組上的位置;?
創(chuàng)建使用分區(qū)架構(gòu)的表;?
分區(qū)表上創(chuàng)建唯一索引,索引列必須包含分區(qū)列,且分區(qū)列不為null;?
由此,當MSSQL?server數(shù)據(jù)庫使用時間越長,積累的數(shù)據(jù)越來越多,性能會急劇下降。?
現(xiàn)有技術(shù)中,一般采取兩種傳統(tǒng)方式來提高性能——即數(shù)據(jù)表瘦身與表分?區(qū)。?
其中,數(shù)據(jù)表瘦身即將現(xiàn)有表中不再使用的數(shù)據(jù)刪除,使用頻率低的數(shù)據(jù)轉(zhuǎn)儲為歷史表。對于一個復(fù)雜的業(yè)務(wù)系統(tǒng)而言,一般很少進行數(shù)據(jù)刪除,這樣就造成數(shù)據(jù)庫出現(xiàn)大型表或者巨型表,使得該表的數(shù)據(jù)查詢緩慢,因此大多數(shù)數(shù)據(jù)表瘦身傾向于轉(zhuǎn)儲為歷史表。?
而MSSQL?server表分區(qū)技術(shù)應(yīng)用于海量數(shù)據(jù)的相關(guān)應(yīng)用領(lǐng)域時,由于MSSQL?server表分區(qū)自身的特點,當表分區(qū)的數(shù)量會和文件組的數(shù)量一樣多,這增加了數(shù)據(jù)文件的管理難度。此外,當數(shù)據(jù)達到分區(qū)函數(shù)的極限時,需要手動進行擴展并新建新的文件組來存儲新的數(shù)據(jù),會因數(shù)據(jù)文件過多而增加數(shù)據(jù)文件管理難度;手動維護眾多(少則幾十來張,多則上百張)分區(qū)表,給dba帶來維護的工作量確實比較大。?
發(fā)明內(nèi)容
本發(fā)明的目的在于克服了上述缺陷,提供一種基于MSSQL?SERVER表分區(qū)及自動維護方法及系統(tǒng)。?
本發(fā)明的目的是這樣實現(xiàn)的:一種基于MSSQL?SERVER表分區(qū)及自動維護方法,它包括分區(qū)步驟及自動維護步驟;?
所述分區(qū)步驟包括,對同類型的表根據(jù)需求設(shè)計數(shù)據(jù)保留策略,同類表基于相同的數(shù)據(jù)保留策略、分區(qū)函數(shù)和分區(qū)架構(gòu)進行表創(chuàng)建;所述表創(chuàng)建包括依次創(chuàng)建表分區(qū)函數(shù)、創(chuàng)建表分區(qū)架構(gòu),定義表分區(qū)結(jié)構(gòu);?
所述自動維護步驟包括,判斷數(shù)據(jù)庫中的表是否需要進行表分區(qū)整理,若需要則將不符合數(shù)據(jù)保留策略的數(shù)據(jù)轉(zhuǎn)儲到臨時表中,而后修改表分區(qū)函數(shù)、修改表分區(qū)架構(gòu)并重新定義表分區(qū)結(jié)構(gòu);?
上述方法中,它還包括計劃任務(wù)步驟,所述任務(wù)步驟包括設(shè)定觸發(fā)條件,當觸發(fā)條件滿足時執(zhí)行自動維護步驟。?
上述方法中,所述計劃任務(wù)步驟具體包括,?
S1)、進入操作系統(tǒng)的任務(wù)計劃程序中制定執(zhí)行計劃,包括添加執(zhí)行任務(wù)內(nèi)容及設(shè)定觸發(fā)條件;所述觸發(fā)條件包括任務(wù)觸發(fā)時間點和觸發(fā)時間間隔;所述?執(zhí)行任務(wù)內(nèi)容為執(zhí)行自動維護步驟;?
S2)、開啟執(zhí)行計劃,當滿足觸發(fā)條件時觸發(fā)執(zhí)行任務(wù)內(nèi)容;?
S3)、任務(wù)計劃根據(jù)觸發(fā)時間間隔累加任務(wù)觸發(fā)時間。?
上述方法中,所述分區(qū)步驟具體包括,根據(jù)業(yè)務(wù)特征與數(shù)據(jù)需求為同一個類型的表制定數(shù)據(jù)保留策略,而后就同類表基于相同的數(shù)據(jù)保留策略、分區(qū)函數(shù)和分區(qū)架構(gòu)進行表創(chuàng)建;所述表創(chuàng)建包括步驟,?
A)、于數(shù)據(jù)庫中添加一個包括表名、觸發(fā)分區(qū)整理值及分區(qū)整理狀態(tài)鍵名的表分區(qū)管理表;所述分區(qū)整理狀態(tài)鍵名中存儲有是否需要進行分區(qū)整理的鍵值;?
B)、根據(jù)分區(qū)鍵字段、分區(qū)數(shù)量計算各分區(qū)之間邊界值后設(shè)計表分區(qū)策略;?
C)、根據(jù)表分區(qū)策略創(chuàng)建表分區(qū)函數(shù)并執(zhí)行;?
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廈門市美亞柏科信息股份有限公司,未經(jīng)廈門市美亞柏科信息股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310750793.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





