計算機等級考試四級資料庫工程師複習題
第10章 資料庫的實施、執行和維護
10.1資料庫的實施
10.1.1 定義資料庫結構
1、 為了實現資料庫的邏輯結構設計和物理結構設計結果,必須建立實際的資料庫,即在確定了資料庫的邏輯結構和物理結構後,開發人員使用具體的DBMS提供的資料定義語言(DDL)來嚴格描述資料庫結構。
10.1.2 資料裝載
1、 完成了資料庫定義後,還須裝入各種實際資料;
2、 由於資料的來源不同,其組織方式、結構、格式會不同,可能出現源資料與新資料庫結構不相容;
3、 我們可以先將源資料提取出來,存入計算機,然後分類轉換,成為符合新資料庫結構的資料,再存入資料庫,具體步驟如下:
(1) 篩選資料;(2)轉換資料格式;(3)輸入資料;(4)校驗資料;
4、 為完成初始資料的錄入,通常需要設計一些資料錄入子系統,由計算機輔助完成入庫工作,對某些紙質資料或資料量少的資料,可由人工一條條進行錄入;而對於資料量大的資料,可考慮採用批次資料裝載程式來實現。
10.1.3 編寫與除錯應用程式
1、 只有當資料庫的結構建立好後,才能開始應用程式的編寫和除錯;
2、 可使用模擬資料進行程式的除錯。
10.1.4 資料庫的試執行
1、 應用程式除錯完成並已有一小部分資料入庫,就可以開始資料庫的試執行,也稱聯合除錯;
2、 試執行十分重要,因為:
(1) 檢測應用程式在接近真實的環境中執行是否符合設計要求;
(2) 檢測系統設計的效能和評價。
3、 試執行的工作主要有兩個:
(1) 功能測試:執行資料庫應用程式,執行各種操作,測試程式是否滿足設計要求,找出不足,改進現有程式直到符合設計要求;
(2) 效能測試:測量系統的`效能指標,分析是否符合設計目標。
10.2 資料庫的執行和維護
1、 資料庫設計並試執行後,如試執行結果符合設計目標,資料庫就可以真正投入運行了,同時也標誌著開發任務的基本結束和維護工作的開始;
2、 維護工作包括:
(1) 資料庫的轉儲與恢復;
(2) 資料庫安全性和完整性控制;
(3) 資料庫效能的檢測與改善;
(4) 資料庫的重組和重構。
10.3 監控分析
1、 資料庫的監控分析:指管理員藉助相應工具在資料庫執行過程中監測資料庫系統的執行情況,掌握資料庫當前或以往的負荷、配置、應用和其他相應資訊,並對監測資料進行分析,分析資料庫的效能引數和環境資訊,評估系統的整體執行狀態,為系統的安全執行和效能調優提供依據,並提出相應的改善措施,幫助管理人員儘早清除資料庫的效能隱患;
2、 監控分析的目的:保證資料庫系統安全、穩定地執行,以便在發現不正常的情況時,及時對系統進行維護;
3、 根據實現的方法不同,監控的機制分為:
(1) 自動監控機制;
(2) 手動監控機制。
4、根據監控的物件不同,監控分為:
(1) 對資料庫架構體系的的監控;
(2) 對資料庫效能的監控。
10. 4 空間管理
1、 在資料庫執行過程中,對資料庫空間使用情況,特別是空間的增長情況進行監控,並採取相應的措施對空間進行管理非常重要;
2、 空間管理主要包括:建立資料庫空間,更改空間大小,刪除空間,修改空間狀態,新建、移動、關聯資料檔案等;
10. 5 引數調整
1、外部調整:
(1) CPU:當資料庫操作對CPU的要求超過資料庫伺服器的CPU效能時,資料庫效能就受到CPU的限制,使資料庫操作變慢;如業務高峰時,CPU的使用量仍然很低,說明伺服器CPU資源充足;
(2) 網路:大量的SQL資料在網路上傳輸會導致網速變慢,調整網路裝置,也可以一定程度上提高資料庫的效能;
2、 調整記憶體分配
3、 調整磁碟I/O
4、 調整競爭:
(1) 修改引數以控制連線到資料庫的最大程序數;
(2) 減少除錯程序的競爭;
(3) 減少多執行緒服務程序的競爭;
(4) 減少重做日誌緩衝區競爭;
(5) 減少回滾段競爭。
10. 6 查詢最佳化
1、 合理使用索引:索引是資料庫中重要的資料結構,根本目的就是為了提高查詢效率,使用原則如下 :
(1) 經常在索引中作為條件被使用的列,應為其建立索引;
(2) 頻繁進行排序或分組(即進行group by或order by操作)的列,應為其建立索引;
(3) 一個列的值域很大時,應為其建立索引;
(4) 如果待排列的列有多個,應在這些列上建立複合索引;
(5) 可以使用系統工具來檢查索引的完整性,必要時進行修復。
2、 避免或簡化排序:因為磁碟排序的開銷很大,當能夠利用索引自動以適當的次序產生輸出時,最佳化器就可以避免不必要的排序步驟,以下是一些影響因素:
(1) 由於現有的索引不足,導致排序時索引中不包括一個或幾個等待排序的列;
(2) group by或order by子句中列的次序與索引的次序不一樣;
(3) 排序的列來自不同的表。
為了避免不必要的排序,就要正確
地增建索引,合理地合併資料庫表。如排序不可避免,那麼應試圖簡化它。
3、 消除對大型錶行資料的順序存取:在巢狀查詢中,對錶的順序存取對查詢效率可能產生致命的影響,解決方法就是對連線的列進行索引。還可以使用並集來避免順序存取。
4、 避免相關子查詢:查詢巢狀層次越多,效率越低,應儘量避免子查詢,如不可避免,那麼要在子查詢中過濾儘量多的行;
5、 避免困難的正規表示式:避免含MATCHES和LINK關鍵字的正規表示式;
6、 使用臨時表加速查詢:把表的一個子集進行排序並建立臨時表,有時能加速查詢;
7、 用排序來取代非順序磁碟存取;
8、 不充分的連線條件;
9、 儲存過程;
10、 不要隨意使用遊標;
11、 事務處理。