定期自動執行的維護計劃:
用新的填充(占空)因子重建索引以重組資料和索引頁上的資料。這確保資料庫頁包含相等分布的資料和剩餘空間 ,這允許未來更快速成長。 從資料庫頁中移出空資料頁壓縮資料檔案。更新索引統計以確保查詢最佳化有表分布資料值得最新資訊。這允許查詢最佳化作出訪問資料的最優途徑的更好的判斷,因為它有關於資料存放區在資料庫中的更多資訊。雖然索引統計被sql server周期更新的,這個選項強制統計立即更新。執行資料庫上的資料和資料頁內部一致性檢查以確保系統或軟體問題不會損壞資料備份資料庫和事物日誌。資料庫和日期備份可以保持一個指定的周期,這允許你建立用在你需要恢複資料庫一個比最後一個備份早的事件備份曆史設定日誌傳輸。日誌傳輸允許事物日誌從一個資料庫(源)不變地反饋到另一個資料庫(目的)。保持目的資料庫和原資料庫的同步使你有一個備用資料庫而且也提供一個從主要資料庫到唯讀目的伺服器卸下查詢處理的方法
1、sp_add_maintenance_plan
增加一個維護計劃並返回計劃ID
文法:
雙擊代碼全選
12 |
sp_add_maintenance_plan [ @plan_name = ] 'plan_name' ,
@plan_id = 'plan_id' OUTPUT |
傳回值:0成功1失敗
備忘:sp_add_maintenance_plan必須在msdb上執行,它建立一個新的空維護計劃。增加一個或多個資料庫與一個或多個job互動執行sp_add_maintenance_plan_db和sp_add_maintenance_plan_job.
只有sysadmin固定伺服器角色成員可執行sp_add_maintenance_plan
2、sp_add_maintenance_plan_db
將資料庫加到維護計劃中
文法:
雙擊代碼全選
12 |
sp_add_maintenance_plan_db [ @plan_id = ] 'plan_id' ,
[ @db_name = ] 'database_name' |
傳回值:0成功1失敗
備忘:sp_add_maintenance_plan_db 必須在msdb上執行,只有sysadmin固定伺服器角色成員可執行sp_add_maintenance_plan_db
3、sp_add_maintenance_plan_job
將維護計劃中加到一個存在的job中
文法:
雙擊代碼全選
1 |
sp_add_maintenance_plan_job [ @plan_id = ] 'plan_id', [ @job_id = ] 'job_id' |
傳回值:0成功1失敗
備忘:sp_add_maintenance_plan_job必須在msdb上執行,只有sysadmin固定伺服器角色成員可執行sp_add_maintenance_plan_db
4、sp_delete_maintenance_plan
刪除指定維護計劃
文法:
雙擊代碼全選
1 |
sp_delete_maintenance_plan [ @plan_id = ] 'plan_id' |
傳回值:0成功1失敗
備忘:sp_delete_maintenance_plan必須在msdb上執行,只有sysadmin固定伺服器角色成員可執行sp_add_maintenance_plan_db
5、sp_delete_maintenance_plan_db從維護計劃中取消指定資料庫
文法:
雙擊代碼全選
12 |
sp_delete_maintenance_plan_db [ @plan_id = ] 'plan_id' ,
[ @db_name = ] 'database_name' |
傳回值:0成功1失敗
備忘:sp_delete_maintenance_plan_db必須在msdb上執行,只有sysadmin固定伺服器角色成員可執行sp_delete_maintenance_plan_db。當最後一個資料庫從維護計劃中刪除則維護計劃也被刪除。
6、sp_delete_maintenance_plan_job
從指定job中取消(刪除)維護計劃
文法:
雙擊代碼全選
12 |
sp_delete_maintenance_plan_job [ @plan_id = ] 'plan_id' ,
[ @job_id = ] 'job_id' |
傳回值:0成功1失敗
備忘:sp_delete_maintenance_plan_job必須在msdb上執行,只有sysadmin固定伺服器角色成員可執行sp_delete_maintenance_plan_job。當最後一個資料庫從維護計劃中刪除則維護計劃也被刪除。當所有jobs被從維護計劃中刪除推薦使用者執行sp_delete_maintenance_plan_db從維護計劃中移出剩餘的資料庫
7、sp_help_maintenance_plan
返回指定維護計劃的資訊,如果未指定計劃則返回所有的維護計劃資訊
文法:
雙擊代碼全選
1 |
sp_help_maintenance_plan [ [ @plan_id = ] 'plan_id' ] |
如果指定計劃則返回三張表: Plan, Database, Job.
Plan
列名
資料類型
描述
plan_id
uniqueidentifier
維護計劃ID
plan_name
sysname
維護計劃名.
date_created
datetime
計劃建立日期.
owner
sysname
計劃擁有者
max_history_rows
int
計劃在系統資料表中記錄曆史的最大分配行數
remote_history_server
int
寫曆史報告的遠程伺服器名
max_remote_history_rows
int
寫曆史報告的遠程伺服器在系統資料表中最大分配行數.
user_defined_1
int
預設為 NULL.
user_defined_2
nvarchar(100)
預設為NULL.
user_defined_3
datetime
預設為NULL.
user_defined_4
uniqueidentifier
預設為NULL.
Database
列名
描述
database_name
維護計劃中的所有資料庫名 database_name is sysname.
Job
列名
描述
hui
維護計劃中的所有job ID. job_id is uniqueidentifier.
如果未指定計劃則返回所有計劃資訊.
8、sysdbmaintplan_databases
一個相關維護計劃中的每個資料庫包含一行,本表儲存在msdb 中。
列名
資料類型
描述
plan_id
uniqueidentifier
維護計劃ID
database_name
sysname
資料庫名
9、sysdbmaintplan_history
每個維護計劃完成一次包含一行,本表儲存在msdb 中。
列名
資料類型
描述
sequence_id
int
維護計劃執行曆史順序號
plan_id
uniqueidentifier
維護計劃 ID.
plan_name
sysname
維護計劃名.
database_name
sysname
相關計劃資料庫名
server_name
sysname
系統名
activity
nvarchar(128)
維護計劃啟用執行 (例如備份事物日誌等).
succeeded
bit
0 = 成功1 = 失敗
end_time
datetime
每次行動完成時間
duration
int
必須完成行動的時間長度
start_time
datetime
行動開始時間
error_number
int
失敗報告的錯誤數
message
nvarchar(512)
sqlmaint發生的訊息.
10、sysdbmaintplan_jobs
每個維護計劃job包含一行. 本表儲存在msdb 中。
列名
資料類型
描述
plan_id
uniqueidentifier
維護計劃ID
job_id
uniqueidentifier
job ID
11、sysdbmaintplans
每個資料庫維護計劃包含一行. 本表儲存在msdb 中。
Column name
Data type
Description
plan_id
uniqueidentifier
維護計劃ID
plan_name
sysname
維護計劃名.
date_created
datetime
計劃建立日期.
owner
sysname
計劃擁有者
max_history_rows
int
計劃在系統資料表中記錄曆史的最大分配行數
remote_history_server
sysname
寫曆史報告的遠程伺服器名
max_remote_history_rows
int
寫曆史報告的遠程伺服器在系統資料表中最大分配行數.
user_defined_1
int
預設為 NULL.
user_defined_2
nvarchar(100)
預設為NULL.
user_defined_3
datetime
預設為NULL.
user_defined_4
uniqueidentifier
預設為NULL.
log_shipping
bit
日誌運行狀態0 = 失效1 = 啟用