SQL SERVER的檢查點checkpoint

2021-09-27 15:55:23 字數 2356 閱讀 2283

資料修改操作 都是在 記憶體中的資料頁進行修改,每次修改後並沒有立即把這些頁面寫入磁碟,而是等到一定時期,資料庫引擎對資料庫發起 檢查點命令,這時,該命令就會建立乙個已知的正常點,把當前所有在記憶體中已修改的頁面(髒頁)即事務日誌資訊從記憶體中寫入到磁碟,並且記錄下有關事務日誌的資訊。之後如果資料庫意外關閉或者崩潰,那麼在恢復的過程中,資料庫引擎就不需要恢復所有事務日誌,而是從 該檢查點 開始應用日誌中所做的修改。

recovery interval 針對於整個資料庫例項,預設為0,引數定義的時候,分為 0 跟 >0兩種情況。

target_recovery_time 針對於某個資料庫,預設為0,引數定義的時候,也分為0 跟 >0 兩種情況。

當 target_recovery_time 為0時,檢查點型別為自動檢查點。自動檢查點的生成頻率,取決於資料庫 recovery_interval 配置值,可通過管理檢視 sys.sysconfigures檢視配置值。

recovery_interval的配置值 指定 伺服器例項在系統啟動期間 從最近乙個檢查點之後應用日誌來恢復資料庫 的最長時間,也就是當 目標恢復間隔為1分鐘時,那麼資料庫就會檢查,那麼資料庫就會估算,在 db重啟恢復期間,1分鐘內能夠處理的最大日誌記錄數,如果從最近乙個檢查點之後到當前的日誌記錄數達到了這個 值,那麼資料庫就會自動發起乙個檢查點命令。所以,自動檢查點之間的 命令執行時間並非是固定的,在業務高峰期,可能比較密集,而在業務的低峰期,則相對較長時間才允許一次檢查點命令。

這裡需要注意三個地方:

對於oltp系統(少大事務跟少開始事務後遲遲沒有提交事務的情況),recovery interval 是確定恢復時間的主要因素。 但是,recovery interval 選項不影響撤消長時間執行的事務所需的時間。比如,設定的recovery interval為0,則是預設為 1分鐘的恢復間隔,但是修改資料執行了2個小時,那麼,實際的恢復將長於 recovery interval。

通常情況下,預設值是最佳。但是,如果出現以下情況來,則可通過修改配置值來提高效能(建議逐漸增大該值來評估,而非突然修改較大值):

修改recovery interval配置如下:

1

#檢視資料庫 recovery interval配置值

2select

*from sys.sysconfigures where comment like

'%recovery%interval%'3

4#開啟高階選項

5exec sp_configure '

show advanced options

', 1;6

go7reconfigure;8

go910#配置 recovery interval 為兩分鐘

11exec sp_configure '

recovery interval

', 2;12

go13

reconfigure;14

go15

16#關閉高階選項

17exec sp_configure '

show advanced options

', 0;18

go19

reconfigure;20

go

sql server 2012開始引入的,它區別與自動檢查點,在於它們生效的範圍,自動檢查點是對整個資料庫例項生效,而間接檢查點只對指定的資料庫生效。

它的優點:

它的缺點:

通常,我們很少需要手動執行checkpoint指令,checkpoint的語法為 :checkpoint [ checkpoint_duration ],checkpoint_duration 為完成該checkppoint所需的秒數。

正常情況下,我們不會指定checkpoint_duration 該值,而是用資料庫自動調整的檢查點持續時間,以降低對資料庫的效能影響。

因為資料庫在執行checkpoint的時候,髒頁數、修改資料的活動事務以及指定實際持續時間checkpoint_duration,都會影響資源的分配情況,假設指定了checkpoint_duration的值為50s,而正常情況下完成這個操作需要150s,那麼這個時候,資料庫為了滿足指定的checkpoint_duration 50s,就會比正常情況下,分配更多的資源給該指令執行,那麼就會影響到正常情況下的其他操作對資源的利用了。

內部檢查點由各種伺服器元件生成,以確保磁碟映像與日誌的當前狀態匹配。 生成內部檢查點以響應下列事件:

使 sql server 故障轉移群集例項 (fci) 離線。

檢查點 為什麼要插入檢查點 檢查點的作用

一 為什麼要插入檢查點 檢查點的作用 檢查點記錄被測系統的預期結果,在執行過程中,qtp將預期結果與實際執行結果進行比較,若一致,測試結果報告中,檢查點為passed,否則為failed。只有插入檢查點的 才具有測試能力,檢查功能點是否實現 二 標準檢查點 standard checkpoint 檢...

功能測試檢查點

測試物件 flight 程式 c s 架構 檢查mercury 是否顯示在 之間 dim a,ba window flight reservation winedit order no 4 getroproperty text b cstr a msgbox b 正規表示式檢查 if語句判定成功或者...

lr VuGen(事務 檢查點)

事務的應用 在每乙個請求前後加上transaction 和 end transaction,選單欄insert new step 記錄請求的響應時間,其中end transaction有status選項,有4個選項,若是auto就不用手工判斷事務的執行結果,但這個結果不夠準確。2 統計事務的成功率 ...