資料庫開發(21)高階應用開發

笨蛋糕發表於2014-02-25

1、效能調整包括發現和消除瓶頸,以及新增適當的硬體,如記憶體或硬碟。

基準是一些任務的標準化集合,他們有助於刻畫資料庫系統的效能特徵。

測試要求生成資料庫狀態和測試輸入,並驗證輸出是否匹配預期的輸出。

2、批量更新:允許使用單次資料庫通訊來執行多個插入操作。

巢狀子查詢:如果一個子查詢沒有被去除相關性,它會被重複的執行,這可能導致大量的隨機I/O。

批量匯入:從檔案讀取資料,以一種非常高效的方式執行完整性約束檢查以及索引維護。批量匯入/匯出功能也支援資料庫特定的二進位制格式以及XML格式。

3、在一個效能均衡的系統中,任何單個的部件都不會稱為瓶頸。一個事務向資料庫系統請求各種服務,從進入一個伺服器程式開始,在執行過程中需要讀磁碟,需要CPU週期,以及併發控制所需要的鎖。資料庫系統中請求的到達從不是均勻的,而總是隨機的。

4、可調引數:

1)最低階別是在硬體層上。這一級上調整選項包括:如果磁碟I/O是瓶頸,則增加磁碟或使用RAID系統;如果磁碟緩衝容量是瓶頸,則增加更多記憶體;如果CPU使用是瓶頸,則改用更快的處理器。

2)第二個級別由資料庫系統引數組成,比如緩衝區大小和檢查點間隔。

3)第三級別是最高階別,它包括模式和事務。

5、硬體調整:

調整事務處理系統的一個重要因素就是確保磁碟子系統能夠處理I/O操作鎖需要的速率。限制因素並不是磁碟容量,而是能夠隨機進行資料訪問的速度。把經常使用的資料放在記憶體中以減少磁碟I/O次數而增加的額外的記憶體開銷是值得的。

5分鐘規則:如果一頁在5分鐘裡被使用的次數多於一次,它就應該被儲存在記憶體中。

對於順序訪問的資料,每秒可能會讀取非常多的頁。

6、索引調整:如果經常使用範圍查詢,那麼B樹索引比雜湊索引更合適。

7、在立即檢視維護的情況下,如果一個事務的更新操作影響到物化檢視,那麼這個物化檢視必須作為該事務的一部分進行更新,因此事務的執行會變慢。在延遲檢視維護的情況下,物化檢視會在以後更新。在物化檢視更新前,物化檢視可能會與資料庫關係不一致。

8、應用系統測試:

程式測試包括設計一個測試集,即一個測試用例的集合。測試不是一次性的過程。迴歸測試包括把程式執行在測試集中的每個測試用例上,並檢查程式是否產生預期的測試輸出。

一個測試用例由兩部分組成:資料庫狀態,以及一個應用程式特定介面的輸入。

SQL查詢可能有難以捕獲的細微錯誤。在一個預期查詢和該查詢的突變上產生不同輸出的測試用例,稱為消滅突變。一個測試集應該有能消滅(大多數)經常發生的突變的測試用例。

如果一個測試用例執行對資料庫的更新,為了檢查它是否正確執行,必須驗證資料庫的內容與預期內容相匹配。因此,預期的輸出不僅包括顯示在使用者螢幕上的資料,而且包括資料庫狀態(的更新)。

由於資料庫狀態可能相當大,多個測試用例可能共享同一個資料庫狀態。

對於效能測試,測試資料庫必須和真實資料庫一樣大。

9、逆向過程包括檢查遺產系統程式碼,提出所需資料模型中的設計模式。還要檢查程式碼找出實現的程式和過程,以得到系統的高層模型。

10、ODBC允許一個客戶端同時連結到多個資料來源,並在這些資料來源之間進行切換,但各個資料來源上的事務是獨立的,ODBC不支援兩階段提交。













相關文章