計算機等級考試四級數據庫工程師複習題

第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、 事務處理。