|
為了使SQL Server數(shù)據(jù)庫的性能保持在最佳的狀態(tài),數(shù)據(jù)庫管理員應(yīng)該對每一個數(shù)據(jù)庫進行定期的常規(guī)維護。這些常規(guī)任務(wù)包括重建數(shù)據(jù)庫索引、檢查數(shù)據(jù)庫完整性,更新索引統(tǒng)計信息,數(shù)據(jù)庫內(nèi)部一致性檢查和備份等…… 1.關(guān)于SQL Server 2005數(shù)據(jù)維護計劃 為了使SQL Server數(shù)據(jù)庫的性能保持在最佳的狀態(tài),數(shù)據(jù)庫管理員應(yīng)該對每一個數(shù)據(jù)庫進行定期的常規(guī)維護。這些常規(guī)任務(wù)包括重建數(shù)據(jù)庫索引、檢查數(shù)據(jù)庫完整性,更新索引統(tǒng)計信息,數(shù)據(jù)庫內(nèi)部一致性檢查和備份等。這些常規(guī)的數(shù)據(jù)庫維護任務(wù)需要經(jīng)常重復(fù),而且繁瑣耗時,所以往往被管理員忽略。而且,現(xiàn)在的數(shù)據(jù)庫管理員一天到晚都被很多其他的任務(wù)壓得喘不過氣來,根本沒有時間去進行日常維護工作。認識到這些問題的存在,SQL Server通過制定維護計劃,提供了一個可以自動或手動執(zhí)行這些日常維護事務(wù)的方法。當(dāng)確定并創(chuàng)建了維護任務(wù)后,日常維護就會根據(jù)設(shè)定的時間段啟動,最終會為企業(yè)提供更優(yōu)質(zhì)更穩(wěn)定更值得信賴的數(shù)據(jù)庫。 2.SQL Server Service Pack 2數(shù)據(jù)維護方面的新特性 SQL Server Service Pack 2有許多改進的新功能和修復(fù)設(shè)置已經(jīng)能夠支持維護計劃的創(chuàng)建功能。其中改進的特性包括: 維護計劃設(shè)計器支持在一個維護計劃里設(shè)置多個子計劃,而且每個子計劃可以具有創(chuàng)建獨立任務(wù)計劃書的功能。多重計劃書是備受期待的特性,能夠為不同的日常維護事務(wù)設(shè)置獨立的計劃表,例如備份、更新統(tǒng)計信息和執(zhí)行SQL Server作業(yè)等。 在SQL Server 2005推出的初期,如果企業(yè)想要運行維護計劃,需要安裝SQL Server集成服務(wù)(SQL Server Integration Services,SSIS)。不過現(xiàn)在維護計劃已經(jīng)作為一項完全支持的特性整合到了數(shù)據(jù)庫引擎中,所以不再需要啟動集成服務(wù)了。 支持多服務(wù)器管理環(huán)境,并把維護計劃信息記錄到遠程服務(wù)器,以適應(yīng)不斷增加的管理維護計劃??梢詮囊慌_中央主服務(wù)器為所有的目標(biāo)服務(wù)器設(shè)置維護計劃。 最早出現(xiàn)在SQL Server 2000備受歡迎的“清除維護任務(wù)”(Maintenance Cleanup Task)重新回到了維護計劃里。這個任務(wù)可以刪除維護計劃執(zhí)行以后任何殘留下來的文件。 下面列舉幾個人們預(yù)想不到的修復(fù)設(shè)置,用以改善相關(guān)的具體任務(wù): SQL Server 2005 Service Pack 2為數(shù)據(jù)庫備份維護計劃任務(wù)增加了新的備份過期選項。如果您想讓備份設(shè)置在某個特定日期之后失效,就可以通過設(shè)置備份過期選項來實現(xiàn)。SQL Server 2000具有這個特性,不過在SQL Server 2005發(fā)布之初被刪除了。 您可以另外指定備份文件夾的位置,數(shù)據(jù)庫備份維護計劃任務(wù)不會再重新設(shè)置這個選項為默認位置。 過去當(dāng)您運行備份數(shù)據(jù)庫維護計劃任務(wù)時,系統(tǒng)可能會錯認為您要利用簡單恢復(fù)模式為系統(tǒng)數(shù)據(jù)庫創(chuàng)建差異和事務(wù)日志備份?,F(xiàn)在這個缺陷已經(jīng)修復(fù)了。 歷史清除維護計劃任務(wù)能夠?qū)h除文件的時間選項設(shè)置成以小時為單位,大大減少了人工操作時間。 更新統(tǒng)計信息任務(wù)提供原先在SQL Server 2000維護計劃中包含的完全掃描或根據(jù)樣本大小掃描的選項。 3. SQL Server維護計劃的任務(wù) 一個維護計劃可以在設(shè)定的時間段里運行全套的SQL Server維護任務(wù),以確保數(shù)據(jù)庫引擎里的關(guān)系數(shù)據(jù)庫能夠優(yōu)化運行、執(zhí)行日常備份和檢查異常數(shù)據(jù)。作為SQL Server數(shù)據(jù)庫引擎的一個特性,可以自動創(chuàng)建數(shù)據(jù)庫維護計劃并為這些日常維護設(shè)置計劃書。一個全面的維護計劃包括一下幾個主要的任務(wù):
注意,和SQL Server 2000不同,日志傳送不再包括在維護計劃的范疇里??梢栽赟QL Server Management Studio的數(shù)據(jù)庫水平上或者通過TSQL腳本設(shè)置日志傳送任務(wù)。 3.1 檢查數(shù)據(jù)庫完整性任務(wù) 檢查數(shù)據(jù)庫完整性任務(wù)(Check Database Integrity Task)檢驗選定的關(guān)系數(shù)據(jù)庫中用戶和系統(tǒng)表的性能和結(jié)構(gòu)完整性,同時也可以選擇檢查所有索引頁的完整性,檢查對象可以是所有的系統(tǒng)和用戶數(shù)據(jù)庫,也可以是單個指定數(shù)據(jù)庫。通過維護計劃向?qū)?Maintenance Plan Wizard)或使用TSQL語句能夠手動創(chuàng)建該任務(wù)。 下面的語法雖然簡單,但提供了在AdventureWorks數(shù)據(jù)庫中創(chuàng)建檢查數(shù)據(jù)庫完整性任務(wù)所需要的所有信息。
3.2收縮數(shù)據(jù)庫任務(wù) 收縮數(shù)據(jù)庫任務(wù)可以把數(shù)據(jù)庫的物理空間和日志文件所占的空間減小到特定值,類似于SSMS中使用的自動收縮任務(wù)(Automatic Shrink Task)。收縮對象可以是所有數(shù)據(jù)庫、所有系統(tǒng)數(shù)據(jù)庫、所有用戶數(shù)據(jù)庫或單個任務(wù)中指定的數(shù)據(jù)庫。該任務(wù)會根據(jù)您輸入的百分比值消除多余的空間。此外,還可以設(shè)定各種表示大小(MB)的閾值,包括當(dāng)數(shù)據(jù)庫大小達到某特定值時的收縮量以及收縮后必須保留的可用空間大小等。可用空間可以保留在數(shù)據(jù)庫里,也可以釋放到操作系統(tǒng)中。 以下的TSQL語法可以用來收縮AdventureWorks 數(shù)據(jù)庫,并把所釋放的空間返回操作系統(tǒng),且允許在收縮后保留15%的可用空間。
但是,如果您要創(chuàng)建維護計劃,最好不要選擇收縮數(shù)據(jù)庫的選項。首先,數(shù)據(jù)庫收縮操作總是反向進行的,即從文件末端開始釋放空間,把分配頁移動到文件起始端的未分配頁。由于所有的轉(zhuǎn)移操作都會被記錄到日志中,所以這個過程會增加事務(wù)日志文件的大小。其次,如果數(shù)據(jù)庫的使用頻率很高就會產(chǎn)生插入碎片,數(shù)據(jù)庫文件又會不斷增加。SQL Server 2005啟用即時文件初始化來解決數(shù)據(jù)庫自動增長緩慢的問題,因此增長過程會比過去快。不過,有時候會出現(xiàn)自動增長需要的空間不足的情況,這將造成數(shù)據(jù)庫性能衰退。最后,數(shù)據(jù)庫收縮和增長過于頻繁會產(chǎn)生很多文件碎片。如果您想要收縮數(shù)據(jù)庫空間,最好在數(shù)據(jù)庫運行非高峰時段手動進行。 3.3 重新組織索引任務(wù) 重新組織索引任務(wù)(Reorganize Index Task)可以整理索引碎片,并壓縮與所有表和視圖相關(guān)聯(lián)的或者與特定表和視圖關(guān)聯(lián)的聚集和非聚集索引,以此來來改善索引掃描性能。受此任務(wù)影響的數(shù)據(jù)庫可以是所有的數(shù)據(jù)庫、所有系統(tǒng)數(shù)據(jù)庫、所有用戶數(shù)據(jù)庫或單個目標(biāo)數(shù)據(jù)庫。任務(wù)設(shè)置了可以用來選擇壓縮圖像或文本等大型對象(LOB)數(shù)據(jù)的額外選項。 為了更深入了解這個任務(wù),下面舉一個用來重新組織與AdventureWorks 數(shù)據(jù)庫中的[Sales]. [SalesOrderDetail]表關(guān)聯(lián)的索引的TSQL語法實例,本例中還包含了壓縮大型對象數(shù)據(jù)的選項:
|
|
|
來自: 知識藏園 > 《SQL sever》