溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SQL SERVER 2016 新功能SVT是怎么進行數(shù)據(jù)清理

發(fā)布時間:2021-12-14 16:56:54 來源:億速云 閱讀:152 作者:柒染 欄目:大數(shù)據(jù)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)SQL SERVER 2016 新功能SVT是怎么進行數(shù)據(jù)清理,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

SQL SERVER 很有意思2016 推出一個歷史版本控制的功能,這個功能的含義在于幫助數(shù)據(jù)表在操作中根據(jù)時間來進行曾經(jīng)操作的記錄,實際上等同于

SQL SERVER 2016 新功能SVT是怎么進行數(shù)據(jù)清理

先不吐槽這個功能在設(shè)計的初期有沒有毛病,但我們的的確確是遇到了,并發(fā)高,同時有回滾的時候,造成時間線出現(xiàn)問題,倒是任務(wù)無法執(zhí)行的問題。雖然是少量的,但這個功能其實也有不嚴謹?shù)牡胤健?/p>

具體這個功能怎么開啟,使用,這里就不說了,這里要說的是數(shù)據(jù)怎么清理,因為存儲的是一個行曾經(jīng)的歷史活動,所以他的數(shù)據(jù)量一般是數(shù)據(jù)表頻繁修改過的匹配,也就是N條你曾經(jīng)的數(shù)據(jù)。

SQL SERVER 2016 新功能SVT是怎么進行數(shù)據(jù)清理

SQL SERVER 2016 新功能SVT是怎么進行數(shù)據(jù)清理

SQL SERVER 2016 新功能SVT是怎么進行數(shù)據(jù)清理

廢話不說先做幾個,測試我們先來領(lǐng)會一下這個功能,歷史版本控制表,在建立的時候,會有兩種,如果建立成另一種則會給后面的自動化數(shù)據(jù)定期清理造成一定的麻煩。所以上面給出的圖形,是兩個一個是給定名字,一個是不。

插入數(shù)據(jù),修改數(shù)據(jù),查看歷史版本控制表

SQL SERVER 2016 新功能SVT是怎么進行數(shù)據(jù)清理

通過上圖也就會明白,這個歷史版本控制的需求,

1必須的有主鍵,否則你怎么能知道一行變化并確認

2 必須的有時間字段,以及變化的開始時間和變化的結(jié)束時間,并且行改變的開始時間是他的sysendtime 時間,而他與他主鍵一致,時間點在sysstarttime一致的是sysstarttime 從上圖我們就可以看出。

3 在有歷史版本控制表與原表工作的時候,有一些操作是被禁止的

SQL SERVER 2016 新功能SVT是怎么進行數(shù)據(jù)清理

例如上面的操作。

下面我們的直奔主題了,怎么清理這些歷史版本的數(shù)據(jù),其實處理起來很簡單,主要是你要在處理的時候,解除歷史版本控制表與主表之間的關(guān)聯(lián),讓其變成一個與實體表無關(guān)的表,然后就可以任你“宰割”了

SQL SERVER 2016 新功能SVT是怎么進行數(shù)據(jù)清理

在處理完畢后,我們在將他與原表進行掛載,繼續(xù)為我們工作,但在這段期間數(shù)據(jù)表操作的數(shù)據(jù)變化不會記錄到我們的歷史版本控制表。并且歷史版本控制表,只記錄UPDATE 和 Delete 的操作。

但如果和上面說的,如果你在操作的過程中,你建立歷史版本控制表的時候,沒有給表名,則你每次進行上面的操作的時候,一開 一閉,你的SQL SERVER 會將你的歷史版本表的表名進行變化,這雖然沒有什么問題,但對你自動化的清理歷史表的數(shù)據(jù)有一定的難度,所以建議還是給一個名字,降低以后自動化處理的麻煩。或者你在

 alter table XXXX  set  (system_versioning = on ) (history_table = 你要設(shè)定的歷史版本表名) 也可以糾正你曾經(jīng)因為沒有設(shè)置表名而歷史版本表名很隨意的問題。

當然也有自己創(chuàng)建自己的歷史歸檔表的方式,然后掛載自己創(chuàng)建的歷史歸檔表,但需要注意的是,這樣建立的表在聚簇和非聚簇索引的需求,(大白話就是主鍵,和 相關(guān)事件字段與主鍵的索引)你要自己處理好.

那么自己寫一個定期處理的他的存儲過程,會是一個很方便的事情。

另這樣的表在某些操作上都會和普通的表不一樣,

例如刪除一個表,需要先解除實體和歷史版本控制表之間的關(guān)系,然后在分開刪除表。

上述就是小編為大家分享的SQL SERVER 2016 新功能SVT是怎么進行數(shù)據(jù)清理了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI