• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    軟件測試開發技術之數據庫優化設計方案

    發布: 2009-9-11 10:55 | 作者: 不詳 | 來源: 領測軟件測試網 | 查看: 55次 | 進入軟件測試論壇討論

    領測軟件測試網 軟件測試開發技術之數據庫優化設計方案  數據庫開發

    關鍵字:數據庫 優化

      本文首先討論了基于第三范式的數據庫表的基本設計,著重論述了建立主鍵和索引的策略和方案,然后從數據庫表的擴展設計和庫表對象的放置等角度概述了數據庫管理系統的優化方案。

      1 引言

      數據庫優化的目標無非是避免磁盤I/O瓶頸、減少CPU利用率和減少資源競爭。為了便于讀者閱讀和理解,筆者參閱了Sybase、Informix和Oracle等大型數據庫系統參考資料,基于多年的工程實踐經驗,從基本表設計、擴展設計和數據庫表對象放置等角度進行討論,著重討論了如何避免磁盤I/O瓶頸和減少資源競爭,相信讀者會一目了然。

      2 基于第三范式的基本表設計

      在基于表驅動的信息管理系統(MIS)中,基本表的設計規范是第三范式(3NF)。第三范式的基本特征是非主鍵屬性只依賴于主鍵屬性;诘谌妒降臄祿䦷毂碓O計具有很多優點:一是消除了冗余數據,節省了磁盤存儲空間;二是有良好的數據完整性限制,即基于主外鍵的參照完整限制和基于主鍵的實體完整性限制,這使得數據容易維護,也容易移植和更新;三是數據的可逆性好,在做連接(Join)查詢或者合并表時不遺漏、也不重復;四是因消除了冗余數據(冗余列), 在查詢(Select)時每個數據頁存的數據行就多,這樣就有效地減少了邏輯I/O,每個Cash存的頁面就多,也減少物理I/O;五是對大多數事務(Transaction)而言,運行性能好;六是物理設計(Physical Design)的機動性較大,能滿足日益增長的用戶需求。

      在基本表設計中,表的主鍵、外鍵、索引設計占有非常重要的地位,但系統設計人員往往只注重于滿足用戶要求,而沒有從系統優化的高度來認識和重視它們。實際上,它們與系統的運行性能密切相關,F在從系統數據庫優化角度討論這些基本概念及其重要意義:

      (1)主鍵(Primary Key):主鍵被用于復雜的SQL語句時,頻繁地在數據訪問中被用到。一個表只有一個主鍵。主鍵應該有固定值(不能為Null或缺省值,要有相對穩定性),不含代碼信息,易訪問。把常用(眾所周知)的列作為主鍵才有意義。短主鍵最佳(小于25bytes),主鍵的長短影響索引的大小,索引的大小影響索引頁的大小,從而影響磁盤I/O。主鍵分為自然主鍵和人為主鍵。自然主鍵由實體的屬性構成,自然主鍵可以是復合性的,在形成復合主鍵時,主鍵列不能太多,復合主鍵使得Join*作復雜化、也增加了外鍵表的大小。人為主鍵是,在沒有合適的自然屬性鍵、或自然屬性復雜或靈敏度高時,人為形成的。人為主鍵一般是整型值(滿足最小化要求),沒有實際意義,也略微增加了表的大小;但減少了把它作為外鍵的表的大小。

      (2)外鍵(Foreign Key):外鍵的作用是建立關系型數據庫中表之間的關系(參照完整性),主鍵只能從獨立的實體遷移到非獨立的實體,成為后者的一個屬性,被稱為外鍵。

      (3)索引(Index):利用索引優化系統性能是顯而易見的,對所有常用于查詢中的Where子句的列和所有用于排序的列創建索引,可以避免整表掃描或訪問,在不改變表的物理結構的情況下,直接訪問特定的數據列,這樣減少數據存取時間;利用索引可以優化或排除耗時的分類*作;把數據分散到不同的頁面上,就分散了插入的數據;主鍵自動建立了唯一索引,因此唯一索引也能確保數據的唯一性(即實體完整性);索引碼越小,定位就越直接;新建的索引效能最好,因此定期更新索引非常必要。索引也有代價:有空間開銷,建立它也要花費時間,在進行Insert、Delete和Update*作時,也有維護代價。索引有兩種:聚族索引和非聚族索引。一個表只能有一個聚族索引,可有多個非聚族索引。使用聚族索引查詢數據要比使用非聚族索引快。在建索引前,應利用數據庫系統函數估算索引的大小。

     、 聚族索引(Clustered Index):聚族索引的數據頁按物理有序儲存,占用空間小。選擇策略是,被用于Where子句的列:包括范圍查詢、模糊查詢或高度重復的列(連續磁盤掃描);被用于連接Join*作的列;被用于Order by和Group by子句的列。聚族索引不利于插入*作,另外沒有必要用主鍵建聚族索引。

     

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 技術 開發 軟件測試 數據庫 設計方案

    31/3123>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>