久久久久在线观看_又色又爽又黄的免费视频播放_一区中文字幕_日韩电影在线播放

今日頭條 焦點資訊 營銷之道 企業(yè)報道 淘寶運營 網(wǎng)站建設(shè) 軟件開發(fā) 400電話
  當(dāng)前位置: 首頁 » 資訊 » 網(wǎng)站建設(shè) » 正文

SQL Server 自動化管理分區(qū)設(shè)計方案(圖解)

放大字體  縮小字體 發(fā)布日期:2018-02-18  來源:新格網(wǎng)  作者:新格網(wǎng)  瀏覽次數(shù):355  【去百度看看】
核心提示:設(shè)計這個自動化的目的是想要交替、重復(fù)地使用固定的幾個分區(qū)(分區(qū)編號01~05)來保存數(shù)據(jù),當(dāng)最后一個分區(qū)就是快滿的時候,我們會把最舊數(shù)據(jù)的分區(qū)的數(shù)據(jù)清空出分區(qū),新數(shù)據(jù)就可以使用老分區(qū)空間了。

一、設(shè)計說明

設(shè)計這個自動化的目的是想要交替、重復(fù)地使用固定的幾個分區(qū)(分區(qū)編號01~05)來保存數(shù)據(jù),當(dāng)最后一個分區(qū)就是快滿的時候,我們會把最舊數(shù)據(jù)的分區(qū)的數(shù)據(jù)清空出分區(qū),新數(shù)據(jù)就可以使用老分區(qū)空間了。

應(yīng)用這個自動化管理分區(qū)的環(huán)境是有些限制的,其一:分區(qū)的數(shù)據(jù)是呈現(xiàn)遞增的,比如分區(qū)字段是自增Id值,或者是以日期作為分區(qū);其二:可以接受歷史數(shù)據(jù)被移除分區(qū)表帶來的問題。其三:一天進(jìn)庫的數(shù)量不應(yīng)大于分區(qū)管理表PartitionManage中Part_Value與Change_Value的差,因為我們作業(yè)執(zhí)行的頻率是1天,不過你可以調(diào)整Change_Value或者作業(yè)的執(zhí)行頻率;

具體腳本可以參考:SQL Server 2005 自動化刪除表分區(qū)設(shè)計方案

二、看圖說話

(圖1:整體概念圖)

數(shù)據(jù)流經(jīng)過分區(qū)方案,被分配到不同的分區(qū)中,從圖中可以看出,分區(qū)是可以重復(fù)利用的,后臺有一個所謂的自動化切換分區(qū)的作業(yè)在跑,目的就是如果重復(fù)利用這些分區(qū)。這里的PRIMARY目的就是說明它與其它文件組的一個平級關(guān)系,而且我們在做交換分區(qū)時候也會用到PRIMARY,需要事先分配足夠的空間。

(圖2:自動化設(shè)計圖)

這是自動化切換分區(qū)作業(yè)的邏輯處理,其中分區(qū)管理表的設(shè)計是比較重要的,它的靈活度關(guān)系到整個自動化的效果; 這個邏輯有以下幾個特點:

1. 分區(qū)的索引進(jìn)行存儲位置對齊;其它索引在創(chuàng)建時就使用了分區(qū)方案,索引數(shù)據(jù)跟隨分區(qū)數(shù)據(jù)一起存儲在分區(qū)中;

2. 分區(qū)管理表,包含了分區(qū)記錄數(shù)預(yù)警設(shè)計,在Id達(dá)到這個值后就會進(jìn)行交換分區(qū);

3. 分區(qū)管理表,F(xiàn)ileGroup_String字段的數(shù)據(jù)可以通過SQL腳本自動化生成,條件就是分區(qū)文件組名稱需要有規(guī)律;

4. 臨時表是創(chuàng)建在PRIMARY主分區(qū)上,跟原表使用相同的分區(qū)方案;需要事先給PRIMARY分配大于或者等于一個分區(qū)文件大小的空間,這樣在交換分區(qū)的時候就不用增量為主分區(qū)分配數(shù)據(jù)空間;

5. 交換舊數(shù)據(jù)到臨時表,使用下面的語句可以把數(shù)據(jù)交換到相同的分區(qū)中編號,這樣可以應(yīng)對臨時表就是一個歷史表,而好處就是歷史表也同樣使用了分區(qū)。

ALTER TABLE [tb] SWITCH PARTITION @PARTITION_num TO [Temp_tb] PARTITION@PARTITION_num

6. 這里需要先修改分區(qū)方案,才能修改分區(qū)函數(shù),這個跟創(chuàng)建分區(qū)函數(shù)與分區(qū)方案的順序是剛好相反的。

(圖3:分區(qū)管理表PartitionManage)

字段說明:Change_Value(預(yù)警Id值)Part_Value(分區(qū)函數(shù)值)FileGroup_String(分區(qū)文件組名稱)IsDone(狀態(tài))UpdateTime(更新時間);

這就是那個分區(qū)管理表(PartitionManage),它是經(jīng)過了幾個版本后才把字段確定下來的,現(xiàn)在它已經(jīng)比較完善了,能應(yīng)對比較多的情況:

1. 比如我們可以修改預(yù)警值(Change_Value),讓數(shù)據(jù)提早進(jìn)入交換分區(qū);

2. 比如我們可以修改分區(qū)值(Part_Value),達(dá)到調(diào)整分區(qū)間隔的目的;

3. 比如我們可以修改分區(qū)文件組名稱(FileGroup_String),達(dá)到跳級文件組的目的;通過修改分區(qū)管理表來設(shè)置分區(qū)值與分區(qū)文件組的對應(yīng)關(guān)系;

4. 再比如,我們一次性修改了分區(qū)方案和分區(qū)函數(shù),已經(jīng)去到很后面的分區(qū)值了,那么我們只要設(shè)置這些分區(qū)值的狀態(tài)(IsDone)為1(True)就可以解決了。

5. 記錄了進(jìn)行交換分區(qū)的時間(UpdateTime),方便查詢;

(圖4:分區(qū)為Id字段的記錄分布圖)

這是一個實戰(zhàn)中的分區(qū)情況,這樣的分區(qū)特點就是分區(qū)里面的記錄數(shù)基本上是持平的,在Partition_num=20的記錄中明顯多了很多記錄,這就是因為我們沒有及時進(jìn)行交換分區(qū)造成的。

(圖5:分區(qū)為ClassId(分類)字段的記錄分布圖)

這同樣是另外一個生產(chǎn)環(huán)境中的真實數(shù)據(jù),這個分區(qū)方式的特點就是分區(qū)的記錄數(shù)不太均等,而我們前期需要做的就是通過劃分每個分區(qū)中ClassId的值來盡量均衡分區(qū)中的記錄數(shù),所以可以看到最小與最大值跨度區(qū)別是比較大。

(來源:博客園 作者:聽風(fēng)吹雨)

 
 
[ 資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 違規(guī)舉報 ]  [ 關(guān)閉窗口 ]

 
0條 [查看全部]  相關(guān)評論

 
網(wǎng)站首頁 | 關(guān)于我們 | 聯(lián)系方式 | 使用協(xié)議 | 版權(quán)隱私 | 網(wǎng)站地圖 | 排名推廣 | 廣告服務(wù) | 積分換禮 | 網(wǎng)站留言 | RSS訂閱 | 吉ICP備11001726號-6
企業(yè)800網(wǎng) · 提供技術(shù)支持