二是什麼時候CPU是空閒的?空閒是一個相對的標准。有時會CPU使用率30%以下可以定義為空閒;而有時候CPU使用率只有不到60%,就是空閒。這要根據服務器的配置已經所部屬的應用來考慮。所以管理員在采用CPU空閒計劃之前,先要對服務器進行觀測一定時間,采用性能監視器等工具來監視服務器流量並收集相關的統計信息。然後利用收集到的信息來分析CPU空閒的標准,並在數據庫中進行相關的設置。將 CPU 空閒條件定義為一個百分比,在該百分比以下,CPU 使用率必須持續指定的時間。然後,設置持續時間長度。如果 CPU 使用率在指定時間內低於指定的百分比,則 SQL Server 代理將啟動具有 CPU 空閒時間計劃的所有作業。如管理員認為CPU使用率在35%以下可以運行重建索引的作業,即當這個重建索引作業運行時CPU使用率在可以忍受的范圍之內,此時就可以把CPU的空閒率標准設置為35%。而且這個低於35%的CPU使用率必須要持續一段時間。如這個低於35%的CPU持續時間很短,那麼系統仍然不會認為這個CPU是出於空閒狀態。這個持續時間最好能夠參考具體作業的執行時間。若重建索引作業所需要的時間等等。
一、 如何停止計劃的自動執行?
有些時間我們可能並不需要自動執行計劃。如在數據庫設計的時候,管理員並不需要這些自動執行的計劃。為此需要把他們暫時停止。此時有哪些方法可以做到這一點呢?
一是可以把計劃與作業剝離。計劃與作業是兩個獨立的內容。如數據庫完全備份與計劃時間就是相互獨立的。如果設置好了數據庫完全備份的策略,但是沒有把計劃時間與這個作業進行關聯的話,則數據庫完全備份不會自動執行。此時如果需要執行這個作業的話,則就要進行手工啟動。故當管理員暫時不想要某個計劃的時候,可以把計劃作業剝離,即在作業中去掉這個時間計劃即可。
二是禁用作業或者計劃。當管理員不需要某個作業自動運行的時候,可以把這個計劃或者作業進用掉。禁用計劃或者禁用作業都會讓某個作業停止自動運行,但是他們仍然有微小的差異。如禁止計劃的話,只是這個這個作業停止自動運行,但是管理員仍然可以手工執行它。可是禁用作業的話,則系統不僅不會自動運行,而且管理員還不能夠手工執行它。這就好像給這個作業設置了終身監禁。為此,為了避免這種情況的發生,筆者是建議最好采用禁用計劃而不是禁用作業。如此的話,在必要的時候管理員還可以手工啟動該作業來應急。另外,如果這個計劃將來仍然需要采用的話,筆者不建議把計劃與作業剝離的方式來停止計劃的自動執行;而是建議這種禁用計劃的方式來完成。不然的話,下次需要的時候仍然需要把計劃與作業關聯,反而會增加工作量。
另外,如果這個測試計劃以後再也不用時,有兩種處理方法。一是把計劃直接刪除。這個是最徹底的方法,但是不會留下任何歷史紀錄。二是先把計劃跟作業玻璃,然後再禁用這個計劃。這雖然比較麻煩一點,而且會在數據庫中留下垃圾數據。但是卻可以保留歷史紀錄。這可能會對數據庫的後續維護帶來一定的幫助。到底不用的計劃是刪除還是禁用,沒有一個統一的標准。還是需要根據數據庫管理員的操作習慣來判斷。
無論采取哪種方式,管理員都需要注意兩點內容。一是必須顯示的重新啟動已禁用的計劃。如果管理員只是更改了已禁用的計劃策略,並不會重新啟動這個計劃,而需要管理員手工的啟動。二是即使計劃未啟用,作業仍可以為響應警報而運行,或者由用戶手動運行。如果作業計劃未啟用,則任何使用該計劃的作業都不會啟用該計劃。