• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      數(shù)據(jù)庫信息管理系統(tǒng)的邏輯架構與功能設計探析

      2023-08-26 03:08:11胡勁
      電腦知識與技術 2023年19期
      關鍵詞:功能設計信息管理系統(tǒng)數(shù)據(jù)庫

      胡勁

      關鍵詞:信息管理系統(tǒng);數(shù)據(jù)庫;邏輯架構;功能設計;調(diào)優(yōu)

      0 引言

      通過對信息管理系統(tǒng)數(shù)據(jù)庫產(chǎn)生瓶頸的原因進行反復研究分析,主要存在不同量級的數(shù)據(jù)優(yōu)化的思路不同,數(shù)據(jù)的量級隨著時間的推移而提高。大部分系統(tǒng)分析師一般只對遇到的當前量級數(shù)據(jù)逐步提出優(yōu)化方案,例如:1萬級無須優(yōu)化、10萬級排查數(shù)據(jù)結構的合理性、100 萬級建立合理的索引[1]。這種優(yōu)化思路形成了反復對性能修復補丁,并沒有一次性解決問題,每個量級的數(shù)據(jù)性能修復補丁變得更加艱難。

      1 基于不同量級數(shù)據(jù)優(yōu)化的改進

      為了確保數(shù)據(jù)庫結構的統(tǒng)一原則,在邏輯設計階段表與表之間經(jīng)常會設計過多的關聯(lián),盡可能地減少數(shù)據(jù)冗余。但在實際應用中,雖然數(shù)據(jù)冗余低會使數(shù)據(jù)的完整性得到保證,提高了數(shù)據(jù)吞吐率,能夠清晰地表述出數(shù)據(jù)屬性之間的關系,但當數(shù)據(jù)庫足夠龐大的時候,多表之間關聯(lián)頻繁會降低查詢性能,加大了客戶端程序編程的難度[2];因此,在物理設計階段,需要根據(jù)實際業(yè)務需求確定相互存在關聯(lián)數(shù)據(jù)表的最大數(shù)據(jù)容量和字段屬性的訪問頻次,對此類數(shù)據(jù)表做頻繁關聯(lián)查詢,適當并合理地提高數(shù)據(jù)冗余,為了提高查詢性能、系統(tǒng)響應速度,合理提高數(shù)據(jù)冗余是必須的[3]。真實系統(tǒng)的數(shù)據(jù)庫設計階段應該根據(jù)字段類型、查詢語句、算法、索引等多方面進行權衡考慮。

      2 實驗對比

      2.1 數(shù)據(jù)表設計的優(yōu)化

      1) 數(shù)據(jù)庫表命名將業(yè)務表與基礎表區(qū)分,采用集成基礎庫分布式數(shù)據(jù)庫設計思路;

      2) 字段的類型選擇優(yōu)先級數(shù)字、浮點、字符、文本、二進制,能夠使用基本類型的盡量選擇基本類型,如果強行選擇其他優(yōu)先級低的數(shù)據(jù)類型會增加存儲開銷,降低查詢和連接的性能;

      3) 謹慎區(qū)分char 和nvarchar 兩種字符類型,不可變長字符類型char 查詢速度快,增加硬盤的存儲空間,可變長字符類型nvarchar查詢慢一點,節(jié)省硬盤存儲空間;在設計字段的時候可以靈活選擇,針對內(nèi)容固定長度的數(shù)據(jù)選擇char,內(nèi)容長度變化差距很大數(shù)據(jù)選擇nvarchar;

      4) 字段長度設計時,應該根據(jù)實際業(yè)務需求的最大限度前提下盡可能地簡短,滿足需求即可,這種做法可以大大提高查詢性能,在建立字段索引時也能減少資源的消耗。

      2.2 查詢的優(yōu)化

      1) 程序在確保功能實現(xiàn)的基礎上,對數(shù)據(jù)庫訪問建立的連接次數(shù)盡可能地少,并且每次數(shù)據(jù)庫連接使用結束之后必須關閉連接,做到建立連接和關閉連接一一對應;

      2) 盡量避免向用戶端返回過多的數(shù)據(jù)量,如果數(shù)據(jù)量較大,應該考慮業(yè)務需求分析是否合理,通過查詢條件,盡可能縮小對數(shù)據(jù)表的訪問行數(shù)和結果集,從而降低網(wǎng)絡傳輸過程的壓力;

      3) 盡量避免使用select*from Table,一定要用具體的字段名的列表來代替“*”,無須返回業(yè)務邏輯中用不上的任何字段;

      4) 構建SQL 查詢語句時,盡可能把要求使用的索引放在where條件的首列;

      5) where條件語句中的等于(=) 運算不要在左邊進行函數(shù)、算術或表達式運算,否則數(shù)據(jù)庫索引可能會失效;

      6) 避免使用游標,因為游標的效率較差,當游標操作的數(shù)據(jù)大于1萬條時,應該考慮改寫。

      2.3 算法的優(yōu)化

      SQL 語句中經(jīng)常需要融合復雜的算法來解決業(yè)務邏輯問題,數(shù)據(jù)庫越大,算法的瓶頸越容易暴露出來。在此,針對不同的分頁語句在不同的數(shù)據(jù)量級別進行測試分析,優(yōu)化實驗結果如下。

      2.4 合理建立高效的索引進行優(yōu)化

      SQL Server 數(shù)據(jù)庫建立索引有兩個目的:確保索引字段的唯一性、實現(xiàn)快速查詢數(shù)據(jù)的目的。企業(yè)級數(shù)據(jù)庫系統(tǒng)都包括聚集索引和非聚集索引兩種索引,非聚集索引的表的數(shù)據(jù)是根據(jù)Heap 結構存儲的數(shù)據(jù),將全部數(shù)據(jù)添加在表的尾部,聚集索引的表的數(shù)據(jù)是根據(jù)索引字段的順序存儲,并且數(shù)據(jù)表的聚集索引有唯一性。

      聚集索引:數(shù)據(jù)庫表的數(shù)據(jù)是根據(jù)索引字段的順序存儲,索引項的順序與表中記錄的物理存儲順序必須保持一致;對于聚集索引不需要再有另外單獨的數(shù)據(jù)頁,因此,每張數(shù)據(jù)表中最多只能創(chuàng)建唯一的一個聚集索引[4]。

      非聚集索引:數(shù)據(jù)庫表的數(shù)據(jù)記錄存儲順序與索引字段順序無關,非聚集索引采用葉結點的數(shù)據(jù)頁和數(shù)據(jù)行中邏輯指針指向索引字段值。因此,邏輯行數(shù)量與數(shù)據(jù)表行數(shù)據(jù)量完成保持一致[5]。

      1) 建立高效索引的思路;

      2) 結合實際情況淺談索引使用過程中的誤區(qū)。

      理論的目的是應用,應用次數(shù)越多,經(jīng)驗越豐富。

      誤區(qū)一:主鍵就是聚集索引

      通常習慣在每個數(shù)據(jù)表中建立一個自動增長的TableKey 列或以Gid 為值的列為主鍵,像SQL Server 數(shù)據(jù)庫系統(tǒng)就會將它默認為聚集索引,類似于這樣的聚集索引并不能完全發(fā)揮最大的性能優(yōu)勢;要想使用聚集索引達到最大性能優(yōu)勢,應該根據(jù)查詢中的條件縮小范圍和避免全表掃描,某種情況下使用TableKey 主鍵作為聚集索引是一種資源浪費[6] 。

      在無紙化網(wǎng)絡辦公系統(tǒng)的公文、會議、督辦等模塊中,無論是首頁提示用戶待簽收的公文、會議提醒、督辦提醒,還是用戶進行已辦公文、會議、督辦等查詢操作,只要是按需進行數(shù)據(jù)查詢都將離不開字段的是“時間”和用戶的“人員ID”。

      誤區(qū)二:建立索引就一定能夠提高數(shù)據(jù)查詢的性能與速度

      兩條完全相同的SQL 語句:select TableKey from 0T1ab-l2e1 w,h并ere且 時針間對>同一20個22-da0t1e- 字20段a建nd立 時索間引<;索20引22區(qū)-別一種是對“時間”字段建立非聚集索引,兩種方案是對“時間”字段建立聚集索引,兩種查詢速度有著很大的差距。所以,并不是所有字段上只要建立索引就一定能夠提高查詢性能與速度[7]。

      要想建立合適的索引,應該根據(jù)數(shù)據(jù)的分布情況加以分析,例如:無紙化網(wǎng)絡辦公系統(tǒng)公文表中有著百萬級數(shù)據(jù)量的“時間”字段,有著上千條不同日期的記錄,同一個日期又存在若干條公文記錄,根據(jù)建立高效索引的思路得出在此字段上建立聚集索引是最佳的選擇。

      誤區(qū)三:只要提高數(shù)據(jù)查詢性能與速度的字段就全部加聚集索引

      SQL Server 雖然只能建立一個唯一的聚集索引,但經(jīng)常會出現(xiàn)同時多個字段都需要建立聚集索引的情況,這時通常可以把他們合并一起建立一個復合索引,也并非所有的字段都適合加入聚集索引,需要根據(jù)實際情況權衡選擇。

      復合索引查詢性能的主要體現(xiàn)是查詢條件中是否用到索引中的全部列。比如:根據(jù)無紙化網(wǎng)絡辦公系統(tǒng)公文中的“人員ID”和“時間”字段,通過分析這兩個字段非常重要,并且基本上都會同時出現(xiàn)在查詢條件當中,那么就可以將它們合并建立一個復合的聚集索引,并且“時間”為起始列、“人員ID”排在后列[8]。

      3) 其他事項

      只有建立合理的索引才有利于提高數(shù)據(jù)查詢的性能,如果過多或者不當?shù)慕⑺饕龝е孪到y(tǒng)產(chǎn)生更嚴重的瓶頸,因為每一個索引都會導致存儲空間的增加和數(shù)據(jù)庫會做更多復雜的工作,并且產(chǎn)生大量的索引碎片。所以,要想建立一個合理的索引體系,需要融合更多的實戰(zhàn)應用分析,結合調(diào)優(yōu)結果精益求精建立索引,才能使數(shù)據(jù)庫的性能達到最佳的狀態(tài)。

      3 結論

      綜上所述,通過大型信息管理系統(tǒng)中的數(shù)據(jù)庫設計和優(yōu)化進行反復論證,本文針對數(shù)據(jù)庫設計和優(yōu)化提出以下幾點思路:1) 數(shù)據(jù)表中每一個字段的設計都必須非常嚴謹,比如數(shù)據(jù)類型選擇、長度設計等;2) 查詢語句的優(yōu)化是SQL效率優(yōu)化的一個方式,可以通過優(yōu)化SQL語句來盡量使用已有的索引,避免全表掃描, 從而提高查詢效率;3) 不斷優(yōu)化復雜的算法來解決數(shù)據(jù)量大的業(yè)務邏輯問題;4) 建立最合理的索引體系可以大大提高系統(tǒng)的性能。

      猜你喜歡
      功能設計信息管理系統(tǒng)數(shù)據(jù)庫
      三維可視化信息管理系統(tǒng)在選煤生產(chǎn)中的應用
      選煤技術(2022年2期)2022-06-06 09:13:12
      信息管理系統(tǒng)在工程項目管理的應用
      基于三維TGIS的高速公路綜合信息管理系統(tǒng)
      數(shù)據(jù)庫
      財經(jīng)(2017年2期)2017-03-10 14:35:35
      基于ASP.NET的貴安大學城二手物品交易網(wǎng)站的設計與實現(xiàn)
      商(2016年35期)2016-11-24 08:04:22
      微信微網(wǎng)站典型功能設計與性能保障研究
      醫(yī)學類課程題庫管理與組卷系統(tǒng)需求分析及功能設計
      電力營銷系統(tǒng)功能分析
      中國市場(2016年27期)2016-07-16 04:00:15
      數(shù)據(jù)庫
      財經(jīng)(2016年15期)2016-06-03 07:38:02
      數(shù)據(jù)庫
      財經(jīng)(2016年3期)2016-03-07 07:44:46
      旺苍县| 祥云县| 海门市| 平乡县| 玉环县| 伊吾县| 来安县| 曲阳县| 布尔津县| 永寿县| 大新县| 蓬安县| 大新县| 巫山县| 嵊州市| 隆林| 长丰县| 寿宁县| 永州市| 稻城县| 宿松县| 青岛市| 哈尔滨市| 沧州市| 台南市| 神农架林区| 安达市| 贞丰县| 中江县| 耒阳市| 芜湖县| 武威市| 尼木县| 金堂县| 龙川县| 陈巴尔虎旗| 扎囊县| 健康| 宁蒗| 大名县| 怀化市|