SQL Server 數(shù)據(jù)庫(kù)自動(dòng)執(zhí)行管理任務(wù)
計(jì)劃就是自動(dòng)化管理組件的一個(gè)成員。計(jì)劃指定了作業(yè)運(yùn)行的時(shí)間。多個(gè)作業(yè)可以根據(jù)一個(gè)計(jì)劃運(yùn)行;多個(gè)計(jì)劃也可以應(yīng)用到一個(gè)作業(yè)。但是這個(gè)時(shí)間跟我們普通上的幾點(diǎn)幾分又有差異。這個(gè)時(shí)間不僅指特定的日期或者時(shí)間,而且還可以表示特定的時(shí)間。如當(dāng)SQL Server代理啟動(dòng)的時(shí)候或者服務(wù)器的CPU使用率處于定義的空閑狀態(tài)水平時(shí)。也就是說(shuō),這里指的時(shí)間計(jì)劃也可以實(shí)現(xiàn)一定的條件狀態(tài)控制。簡(jiǎn)而言之,計(jì)劃作業(yè)就是定義使得作業(yè)在沒(méi)有哦能夠互交互情況下開(kāi)始運(yùn)行的條件,包括具體的日期或者特定的在狀況。通過(guò)為作業(yè)創(chuàng)建新計(jì)劃或者將現(xiàn)有的計(jì)劃添加到作業(yè)可以將作業(yè)計(jì)劃設(shè)置為自動(dòng)運(yùn)行。不過(guò)在設(shè)置自動(dòng)執(zhí)行計(jì)劃的時(shí)候,需要注意一個(gè)問(wèn)題。即一次只能夠運(yùn)行一個(gè)作業(yè)實(shí)例。如果在作業(yè)按計(jì)劃運(yùn)行時(shí)嘗試手工運(yùn)行該作業(yè),則SQL Server代理將拒絕這個(gè)請(qǐng)求。另外,即使計(jì)劃未啟用,作業(yè)仍可以為響應(yīng)警報(bào)而運(yùn)行,或者由用戶(hù)手動(dòng)運(yùn)行。如果作業(yè)計(jì)劃未啟用,則任何使用該計(jì)劃的作業(yè)都不會(huì)啟用該計(jì)劃。
一、 計(jì)劃觸發(fā)的時(shí)間與事件。
上面筆者說(shuō)過(guò),計(jì)劃可以基于特定的時(shí)間與事件而觸發(fā)。那么這些具體的時(shí)間與事件是什么呢?筆者平時(shí)用到的最多的就是如下幾種情況。
一是特定的日期和時(shí)間運(yùn)行一次。這個(gè)計(jì)劃時(shí)間在數(shù)據(jù)庫(kù)備份的時(shí)候特別有用。大家都知道,數(shù)據(jù)庫(kù)備份會(huì)占用比較多的系統(tǒng)資源。如果在數(shù)據(jù)庫(kù)服務(wù)器使用高峰期(如白天上班時(shí)間)進(jìn)行備份的話,那么會(huì)對(duì)用戶(hù)的訪問(wèn)造成比較大的影響。為此筆者就把數(shù)據(jù)庫(kù)備份的時(shí)間放在晚上12點(diǎn)之后。這個(gè)時(shí)段相對(duì)來(lái)說(shuō),很少有用戶(hù)會(huì)訪問(wèn)數(shù)據(jù)庫(kù)。此時(shí)管理員就可以利用計(jì)劃功能,讓其在每天的12點(diǎn)之后進(jìn)行數(shù)據(jù)庫(kù)備份。這就是基于特定的日期和時(shí)間計(jì)劃的典型應(yīng)用。
二是安重復(fù)執(zhí)行的計(jì)劃運(yùn)行。這個(gè)跟上面講的特定日期和時(shí)間運(yùn)行一次比較類(lèi)似。只是上面的情況只運(yùn)行一次。而這個(gè)按重復(fù)執(zhí)行計(jì)劃運(yùn)行則是指會(huì)重復(fù)運(yùn)行多次。如每天晚上12點(diǎn)都進(jìn)行數(shù)據(jù)庫(kù)備份等等。在實(shí)際工作中,特定日期和時(shí)間運(yùn)新一次往往只是針對(duì)一些特殊的情況。如今天剛對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行了比較大的更改,如添加了幾張表或者視圖,此時(shí)就需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行一次完全備份。如故不急于進(jìn)行備份的話,則就可以建立一個(gè)在特定的日期和時(shí)間運(yùn)行的數(shù)據(jù)庫(kù)完全備份計(jì)劃,讓其在午后進(jìn)行數(shù)據(jù)庫(kù)備份。但是對(duì)于常規(guī)的數(shù)據(jù)庫(kù)備份,則需要采取這個(gè)按重復(fù)執(zhí)行計(jì)劃運(yùn)行。
三是當(dāng)計(jì)算機(jī)的CPU使用率處于定義的空閑狀態(tài)水平時(shí)。也就是說(shuō),數(shù)據(jù)庫(kù)服務(wù)器當(dāng)前的CPU使用率比較低,可以執(zhí)行其他一些比較復(fù)雜的管理任務(wù)。如有些數(shù)據(jù)庫(kù)系統(tǒng)在設(shè)計(jì)的時(shí)候,有一個(gè)庫(kù)存補(bǔ)貨點(diǎn)作業(yè)。當(dāng)庫(kù)存低于安全庫(kù)存的時(shí)候,系統(tǒng)就會(huì)自動(dòng)生成一張物料請(qǐng)購(gòu)單,來(lái)滿(mǎn)足安全庫(kù)存的需要。由于這張表設(shè)計(jì)到的物料比較多,會(huì)占用比較多的系統(tǒng)資源。故可以設(shè)置每天運(yùn)行一次,而運(yùn)行的時(shí)間就定在CPU使用率比較低的時(shí)候。如此就可以減少對(duì)其他作業(yè)造成的負(fù)面影響。
二、 CPU空閑計(jì)劃的典型應(yīng)用。
其他的幾種計(jì)劃類(lèi)型,不少數(shù)據(jù)庫(kù)管理員已經(jīng)非常了解。筆者今天想談的是CPU空閑計(jì)劃的應(yīng)用。這個(gè)計(jì)劃如果應(yīng)用的好的話,可以大大提高數(shù)據(jù)庫(kù)的性能。如果要想利用好這個(gè)功能,則需要回答如下兩個(gè)問(wèn)題。
一是什么作業(yè)需要使用CPU空閑計(jì)劃?這個(gè)問(wèn)題比較難回答。從理論上來(lái)說(shuō),任何作業(yè)都可以采用CPU空閑計(jì)劃在自動(dòng)執(zhí)行。只是他們帶來(lái)的效果不同。有的作業(yè)即使采用了CPU空閑計(jì)劃,也不能夠帶來(lái)很大的性能改善。簡(jiǎn)單的來(lái)說(shuō),一些占用CPU資源比較大的作業(yè),采用CPU空間計(jì)劃規(guī)則來(lái)自動(dòng)執(zhí)行,可以取得比較好的效果。如數(shù)據(jù)庫(kù)有時(shí)候需要重新生成索引,這項(xiàng)工作會(huì)占用比較多的CPU資源。而且隨著數(shù)據(jù)量的增多,這個(gè)CPU使用率也會(huì)越來(lái)越高。為此,如果可以把重新生成索引的作業(yè),放在CPU空閑時(shí)間來(lái)進(jìn)行的話,那么對(duì)于提高數(shù)據(jù)庫(kù)的性能效果是比較明顯的。總之當(dāng)某個(gè)作業(yè)比較復(fù)雜,可能需要占用到比較多的CPU或者內(nèi)存資源的話,則可以采用這個(gè)CPU空閑計(jì)劃。
相關(guān)文章
sql server數(shù)據(jù)庫(kù)高可用日志傳送的方法
SQL Server 使用日志傳送,您可以自動(dòng)將“主服務(wù)器”實(shí)例上“主數(shù)據(jù)庫(kù)”內(nèi)的事務(wù)日志備份發(fā)送到單獨(dú)“輔助服務(wù)器”實(shí)例上的一個(gè)或多個(gè)“輔助數(shù)據(jù)庫(kù)”,下面這篇文章主要給大家介紹了關(guān)于sql server數(shù)據(jù)庫(kù)高可用日志傳送的相關(guān)資料,需要的朋友可以參考下2018-05-05
SQL實(shí)現(xiàn)遞歸及存儲(chǔ)過(guò)程中In()參數(shù)傳遞解決方案詳解
這篇文章詳細(xì)介紹了SQL實(shí)現(xiàn)遞歸及存儲(chǔ)過(guò)程中In()參數(shù)傳遞解決方案,有需要的朋友可以參考一下2013-09-09
sql server的一個(gè)有趣的bit位運(yùn)算分享
sql server中沒(méi)有bool類(lèi)型,而是用bit類(lèi)型來(lái)表示bool值,估計(jì)是為了節(jié)省存儲(chǔ)空間,下面為大家介紹下這個(gè)有趣的bit位運(yùn)算,感興趣的朋友可以參考下2013-09-09
SQL Server 2012 多表連接查詢(xún)功能實(shí)例代碼
這篇文章主要介紹了SQL Server 2012 多表連接查詢(xún)功能實(shí)例代碼,需要的朋友可以參考下2017-01-01
總結(jié)一周內(nèi)學(xué)習(xí)的Sql經(jīng)驗(yàn)(一)
學(xué)習(xí)sql有一周時(shí)間了,這些主要是基礎(chǔ)的內(nèi)容,以后估計(jì)就遇到具體的實(shí)例再拿出來(lái)分析。2014-08-08
Sql Server 2000 行轉(zhuǎn)列的實(shí)現(xiàn)(橫排)
在一些統(tǒng)計(jì)報(bào)表中,常常會(huì)用到將行結(jié)果用列形式展現(xiàn)。我們這里用一個(gè)常見(jiàn)的學(xué)生各門(mén)課程的成績(jī)報(bào)表,來(lái)實(shí)際展示實(shí)現(xiàn)方法。2008-11-11
SQLServer 觸發(fā)器 數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)備份
首先,你需要建立測(cè)試數(shù)據(jù)表,一個(gè)用于插入數(shù)據(jù):test3,另外一個(gè)作為備份:test3_bak2009-07-07
Sql Server 存儲(chǔ)過(guò)程調(diào)用存儲(chǔ)過(guò)程接收輸出參數(shù)返回值
這篇文章主要介紹了Sql Server 存儲(chǔ)過(guò)程調(diào)用存儲(chǔ)過(guò)程接收輸出參數(shù)返回值,需要的朋友可以參考下2017-06-06
SQLServer 2000定時(shí)執(zhí)行SQL語(yǔ)句
如果你維護(hù)的數(shù)據(jù)表一方面依靠其他模塊的數(shù)據(jù)表,另一方面又對(duì)其他模塊進(jìn)行數(shù)據(jù)支持,并且這些表都是實(shí)時(shí)更新的,那么就不能通過(guò)頁(yè)面調(diào)用SQL語(yǔ)句等方式來(lái)更新數(shù)據(jù)表,只能讓數(shù)據(jù)表定時(shí)自動(dòng)更新。2011-04-04

