• 
    

    
    

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

      影響Oracle數(shù)據(jù)庫應(yīng)用系統(tǒng)性能的因素分析與改進

      2013-03-19 03:13:59
      關(guān)鍵詞:數(shù)據(jù)量語句階段

      孟 萍 劉 石

      (大連東軟信息學院 遼寧 116023)

      0 引言

      Oracle作為一種大型的數(shù)據(jù)庫系統(tǒng)被廣泛應(yīng)用在電力、電信、金融、民航等重要部門。在實際應(yīng)用中,隨著系統(tǒng)中數(shù)據(jù)的增加,訪問量的加大,常常會出現(xiàn)系統(tǒng)響應(yīng)遲緩,性能下降的問題。圍繞數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能優(yōu)化,目前在業(yè)界已有一些研究成果。本文從軟件產(chǎn)品生命周期的設(shè)計、編碼及部署階段入手,結(jié)合多年的實際工作經(jīng)驗,分析了在軟件開發(fā)過程中影響性能瓶頸的諸多因素,給出了基于Oracle數(shù)據(jù)庫管理系統(tǒng)的優(yōu)化方法及策略。

      1 設(shè)計階段上的優(yōu)化

      設(shè)計階段是軟件開發(fā)中僅次于需求分析之后的第二階段,如果能夠進行科學、合理的設(shè)計,能夠有效避免許多在后繼階段中引起的系統(tǒng)性能問題。一旦數(shù)據(jù)庫設(shè)計付諸實施,我們將很難在應(yīng)用環(huán)境中改變數(shù)據(jù)庫的設(shè)計。因此,本階段的控制措施十分重要! 這里從性能分析的角度,重點闡述數(shù)據(jù)庫對象的優(yōu)化設(shè)計和應(yīng)用邏輯實現(xiàn)設(shè)計兩部分。

      1.1 數(shù)據(jù)庫對象設(shè)計

      數(shù)據(jù)庫對象優(yōu)化設(shè)計的重點在數(shù)據(jù)庫基表設(shè)計、索引設(shè)計和數(shù)據(jù)庫系統(tǒng)整體性能設(shè)計三個方面。

      1.1.1 數(shù)據(jù)庫基表設(shè)計

      人們在開始進行數(shù)據(jù)庫基表設(shè)計的時候,很容易忽略基表在數(shù)據(jù)量很大的情況下,是否會引起應(yīng)用性能下降問題,以及日常維護、備份恢復、數(shù)據(jù)清理等工作是否也會因此而受到影響。而往往在系統(tǒng)投入運行以后才發(fā)現(xiàn)隨著系統(tǒng)業(yè)務(wù)量的增大,正常的使用、日常的備份、以及數(shù)據(jù)清理等操作會變得越來越耗時,甚至達到無法在業(yè)務(wù)給定的時間內(nèi)完成的地步,給客戶及使用單位帶來許多無法想象的麻煩。因此系統(tǒng)的數(shù)據(jù)庫基表的設(shè)計十分重要。

      對于大的數(shù)據(jù)庫基表,我們可以采用數(shù)據(jù)庫分區(qū)技術(shù)來優(yōu)化產(chǎn)品的應(yīng)用性能,同時也能大大簡化DBA對于這些大尺寸庫表的日常維護工作,做到防患于未然。

      1.1.2 索引設(shè)計

      在數(shù)據(jù)庫設(shè)計中,另一個與應(yīng)用系統(tǒng)性能有很大關(guān)系的問題是建立合適的索引。設(shè)計好的索引結(jié)構(gòu),可以避免查詢時的全表掃描,加快查詢速度。而在實際應(yīng)用中,常常沒有制定有效的索引管理策略,許多應(yīng)用系統(tǒng)的索引都是在開發(fā)人員在編寫代碼時看到需要索引就創(chuàng)建一個索引,而較少甚至根本不去查看和分析已有的索引是否可以利用。隨著應(yīng)用功能的擴展,索引數(shù)量只是簡單地增加,而很少考慮重復利用、合并和刪除重復索引。最終導致雷同或可合并的索引大量存在,不但消耗大量的空間,還影響庫表記錄的增、刪性能。

      1.1.3 數(shù)據(jù)庫系統(tǒng)整體性能設(shè)計

      這部分設(shè)計的重點在于盡量減少I/O爭用、分散I/O。如果對于基表和索引的存儲位置沒有進行合理分布,則很容易在系統(tǒng)中造成熱點數(shù)據(jù),使系統(tǒng)的并發(fā)處理能力大打折扣。在實際應(yīng)用中一般可遵循以下幾條策略:

      將表和索引分散在不同的I/O單元上;

      將需要經(jīng)常關(guān)聯(lián)的表分散在不同的I/O單元上;

      對于熱點訪問的基表和索引,盡量分散在盡可能多的數(shù)據(jù)塊甚至不同硬盤上??梢詫⒒砗退饕娣旁赗AID0或RAID5的磁盤陣列中;或使用很大的PCTFREE存儲參數(shù),使數(shù)據(jù)量盡量分散在不同的數(shù)據(jù)塊中,使數(shù)據(jù)稀疏化;

      應(yīng)用Oracle的LMT本地表空間管理和ASSM自動段存儲管理技術(shù)管理數(shù)據(jù)塊的表空間和基表索引等存儲對象,以提高I/O請求并發(fā)率。

      1.2 應(yīng)用邏輯設(shè)計

      在應(yīng)用邏輯設(shè)計過程中,較普遍存在的問題是僅關(guān)注如何通過SQL語句實現(xiàn)應(yīng)用邏輯的功能,但很少分析SQL語句應(yīng)以什么樣的執(zhí)行計劃運行效率最佳;很少分析執(zhí)行計劃是應(yīng)確保始終不變,還是需要隨著數(shù)據(jù)分布的變動而相應(yīng)的變動,以及如何變動進行設(shè)計。

      在一個應(yīng)用系統(tǒng)中存在大量的SQL語句,很難做到針對每一條SQL語句都進行完善的分析設(shè)計工作。因此,可以運用“2-8原則”的思想,對執(zhí)行時間長,或并發(fā)量大的SQL語句精心設(shè)計“理想執(zhí)行計劃”,使其性能得以優(yōu)化。

      2 編碼階段上的優(yōu)化

      在數(shù)據(jù)庫應(yīng)用系統(tǒng)中,造成應(yīng)用程序反應(yīng)緩慢、系統(tǒng)資源消耗大的直接原因常常是不良的SQL語句。往往一個不良的SQL語句會導致整個數(shù)據(jù)庫系統(tǒng)高負荷運轉(zhuǎn),甚至對外暫停服務(wù)。因此在編碼階段應(yīng)首先對SQL語句進行優(yōu)化。

      另外盡量使用存儲過程。有些不需和客戶端交互太多、處理的數(shù)據(jù)量較大的程序,例如報表,可以使用存儲過程實現(xiàn)。這樣可以減少網(wǎng)絡(luò)流量,而且存儲過程本身是編譯好的,經(jīng)過一些優(yōu)化處理。降低事務(wù)執(zhí)行的粒度。某些業(yè)務(wù)處理的數(shù)據(jù)量較大,如果寫成一個SQL語句或放在一個事務(wù)中,執(zhí)行起來會占用系統(tǒng)很多資源,影響其它業(yè)務(wù)的執(zhí)行,可以考慮降低粒度,分成多次執(zhí)行。

      3 部署階段上的優(yōu)化

      在此階段中經(jīng)常會遇到在開發(fā)環(huán)境執(zhí)行效率很高的應(yīng)用部署到生產(chǎn)系統(tǒng)中后,性能卻很不理想的情況,引發(fā)這種情況很多時候是因為部分SQL在部署到生產(chǎn)環(huán)境之后,由于實際的數(shù)據(jù)分配與測試環(huán)境不同,導致Oracle的CBO生成了不同于開發(fā)環(huán)境下生成的執(zhí)行計劃。

      在這一階段,我們可以從開發(fā)環(huán)境中提取出最優(yōu)的SQL執(zhí)行計劃集合,部署到生產(chǎn)系統(tǒng)中,以固定需要固定執(zhí)行計劃的SQL。此外在部署階段還應(yīng)該注意不斷跟蹤、優(yōu)化不良的SQL語句。

      4 結(jié)束語

      Oracle數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能優(yōu)化是一個復雜、繁瑣的系統(tǒng)工程,涉及的方面有很多,我們認為系統(tǒng)性能在70%以上由應(yīng)用系統(tǒng)的結(jié)構(gòu)設(shè)計和SQL語句來決定,數(shù)據(jù)庫端可調(diào)性只有20%左右,因此這里我們重點強調(diào)了產(chǎn)品開發(fā)在設(shè)計、編碼及部署階段在性能方面容易引起瓶頸的因素及解決方法,希望能在產(chǎn)品投入使用之前就引起性能方面的重視及改善。實踐證明,上述措施行之有效。

      當然對系統(tǒng)的優(yōu)化調(diào)整不是一次性的,還需要在使用過程中不斷反復調(diào)整,但如果在產(chǎn)品實施之初就開始注意性能的優(yōu)化問題,對以后的系統(tǒng)維護會減少很多負擔,從而提升軟件產(chǎn)品的整體性能。

      [1] 陳峰. 關(guān)于改善ORACLE數(shù)據(jù)庫應(yīng)用軟件產(chǎn)品性能品質(zhì)的研究: 碩士學位論文. 北京: 北京郵電大學, 20011.

      [2] Thomas Kyte. 蘇金國 王曉振等譯. Oracle 9i&10g編程藝術(shù).人民郵電出版社, 2009

      [3] 李欣, 羅琦, 李春華. Oracle 數(shù)據(jù)庫性能的優(yōu)化設(shè)計. 鄭州大學

      猜你喜歡
      數(shù)據(jù)量語句階段
      關(guān)于基礎(chǔ)教育階段實驗教學的幾點看法
      科學與社會(2022年1期)2022-04-19 11:38:42
      基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
      計算Lyapunov指數(shù)的模糊C均值聚類小數(shù)據(jù)量法
      高刷新率不容易顯示器需求與接口標準帶寬
      重點:語句銜接
      寬帶信號采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計與研究
      電子制作(2019年13期)2020-01-14 03:15:18
      在學前教育階段,提前搶跑,只能跑得快一時,卻跑不快一生。
      莫愁(2019年36期)2019-11-13 20:26:16
      精彩語句
      大熱的O2O三個階段,你在哪?
      營銷界(2015年22期)2015-02-28 22:05:18
      兩岸婚戀邁入全新階段
      海峽姐妹(2015年6期)2015-02-27 15:11:19
      平舆县| 黄浦区| 鸡东县| 方正县| 青神县| 枣庄市| 平阴县| 灯塔市| 曲阜市| 教育| 秀山| 华宁县| 龙里县| 茶陵县| 重庆市| 柳林县| 巴楚县| 喀什市| 英德市| 上饶市| 札达县| 陇南市| 长岭县| 贺兰县| 英山县| 福海县| 泸定县| 静宁县| 乌兰浩特市| 宝坻区| 巴彦淖尔市| 绥中县| 中江县| 阳原县| 黎城县| 左贡县| 沛县| 青州市| 高要市| 定结县| 越西县|