• 
    

    
    

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

      數(shù)據(jù)庫(kù)調(diào)優(yōu)原理及方法

      2009-09-18 09:50:26
      新媒體研究 2009年11期
      關(guān)鍵詞:數(shù)據(jù)庫(kù)系統(tǒng)事務(wù)應(yīng)用程序

      陳 華

      [摘要]數(shù)據(jù)庫(kù)系統(tǒng)作為現(xiàn)在商業(yè)應(yīng)用中極為廣泛的一種應(yīng)用,其建立和使用過程中是否將有限的資源最優(yōu)的利用,關(guān)系到用戶的滿意程度和企業(yè)的成本控制。數(shù)據(jù)庫(kù)調(diào)優(yōu)可以使數(shù)據(jù)庫(kù)應(yīng)用運(yùn)行得更快,有更高得吞吐量和更短的響應(yīng)時(shí)間。介紹數(shù)據(jù)庫(kù)優(yōu)化的原理,接著討論幾種數(shù)據(jù)庫(kù)調(diào)優(yōu)的方法。

      [關(guān)鍵詞]數(shù)據(jù)庫(kù)性能優(yōu)化

      中圖分類號(hào):TP3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)0610080-01

      一、數(shù)據(jù)庫(kù)調(diào)優(yōu)的基本原則

      (一)如何分配服務(wù)器端與客戶端的合理需求。數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)非常密集,要從這樣的系統(tǒng)中獲得令人滿意的性能,不僅僅要對(duì)系統(tǒng)的數(shù)據(jù)庫(kù)管理部分進(jìn)行調(diào)優(yōu),考慮如何在數(shù)據(jù)庫(kù)系統(tǒng)(服務(wù)器)和應(yīng)用程序(客戶端)之間分配工作也是非常重要的。

      首先是考慮客戶與服務(wù)器的相關(guān)計(jì)算資源是否充足。特別是在很多情況下,服務(wù)器都會(huì)過載,而其他部分都正常的工作,這時(shí)候部分的任務(wù)就應(yīng)該遷移到客戶端去。其次是相關(guān)信息的獲取,當(dāng)數(shù)據(jù)庫(kù)發(fā)生變化的時(shí)候系統(tǒng)應(yīng)該有些響應(yīng)。那么在應(yīng)用程序中進(jìn)行的輪詢就應(yīng)該由內(nèi)部的觸發(fā)器代替。因?yàn)檩喸兊霓k法會(huì)定期地查看表是不是有變化,而觸發(fā)器僅僅在發(fā)生變化時(shí)被激發(fā),因此開銷就要小得多。而數(shù)據(jù)庫(kù)任務(wù)和其他任務(wù)是不是交互也很重要,如果存在交互,那么訪問屏幕的那部分應(yīng)該放在事務(wù)之外執(zhí)行,原因是屏幕交互會(huì)占用大量時(shí)間。如果某個(gè)事務(wù)持有時(shí)間片,那么它會(huì)阻止其他事務(wù)訪問它所持有的數(shù)據(jù)。

      (二)減少啟動(dòng)次數(shù)獲取性能優(yōu)化。數(shù)據(jù)庫(kù)所耗費(fèi)的大量資源是用來啟動(dòng)的。比如,在磁盤上開始一個(gè)讀操作是很耗時(shí)的,但是一旦開始,磁盤就能告訴地傳輸數(shù)據(jù)。每當(dāng)某個(gè)重要的查詢從包含成千上萬列的表中只查取少數(shù)幾列時(shí),垂直劃分是個(gè)很好的策略。再比如,對(duì)查詢,即使是簡(jiǎn)單查詢而言,解析、進(jìn)行語(yǔ)義分析、選擇存取路徑的系統(tǒng)成本也是驚人的,一般都超過10000條指令,這就要求應(yīng)該事先編譯經(jīng)常執(zhí)行的查詢。總之,要用盡可能少的啟動(dòng)次數(shù)來獲取最好的性能。

      (三)解決系統(tǒng)瓶頸問題。大多數(shù)情況下,系統(tǒng)運(yùn)行緩慢不是由于所有部件都飽和引起的,而是由于系統(tǒng)中的某個(gè)部分限制了整體的性能,這些部分稱為瓶頸。解決的策略首先局部調(diào)整(例如采用增加索引或者重寫查詢的方法,以便更好地利用現(xiàn)有索引),應(yīng)該首先考慮。第二個(gè)策略是進(jìn)行劃分。數(shù)據(jù)庫(kù)系統(tǒng)中的劃分將負(fù)載分散到更多的資源上執(zhí)行,或者在時(shí)間上并行分配,從而減少某個(gè)部件上的負(fù)載量。在很多情況下劃分的確能解決瓶頸問題。事實(shí)上,劃分是在加速瓶頸所在部件無效的情況下才進(jìn)行的。

      二、數(shù)據(jù)庫(kù)的分類調(diào)優(yōu)

      (一)事務(wù)處理過程的調(diào)優(yōu)。事務(wù)是數(shù)據(jù)庫(kù)應(yīng)用程序便于處理的事件部分。一般來說,開發(fā)者將事務(wù)處理方式看做原子的沒一個(gè)事務(wù)都會(huì)本隔離的執(zhí)行沒有任何并發(fā)動(dòng)作。但遺憾的是,應(yīng)用程序中的事物序列本質(zhì)上是一個(gè)整體,上面提到的原子性保證是不存在的。和設(shè)計(jì)操作系統(tǒng)時(shí)常常遇到的問題一樣,在一個(gè)應(yīng)用程序執(zhí)行的兩個(gè)事務(wù)之間,可能會(huì)有另外一個(gè)應(yīng)用程序的事務(wù)執(zhí)行,而且后者很可能修改可前者兩個(gè)事務(wù)需要訪問的數(shù)據(jù)項(xiàng)。從這里可以看出,事務(wù)短一點(diǎn)會(huì)更容易避免這樣的情況。那么是不是就把事物切分成盡量小的粒度以提高執(zhí)行效率呢?從上面來看是的,但遺憾的是,這樣做會(huì)破壞執(zhí)行的正確性。這種性能和正確性之間的矛盾充斥著和并發(fā)控制有關(guān)的調(diào)優(yōu)過程。在這種情況下,在考慮事務(wù)的性能的時(shí)候有幾點(diǎn)調(diào)優(yōu)選項(xiàng)如下:

      1、事務(wù)使用的鎖的個(gè)數(shù)和性能成反比;2、讀鎖是對(duì)性能最有利的鎖:3、事務(wù)持有鎖的時(shí)間越短,性能越好。

      (二)索引調(diào)優(yōu)泛談。索引是建立在表上的一種數(shù)據(jù)組織,它能提高訪問表中一條或者多條記錄的特定查詢效率。因此,適當(dāng)?shù)乃饕{(diào)優(yōu)是很重要的,未經(jīng)調(diào)優(yōu)的索引可能導(dǎo)致很多不良后果,比如:建立一個(gè)索引卻從不使用,僅僅付出維護(hù)的代價(jià);為了返回單一的記錄而掃描多個(gè)文件;由于存在錯(cuò)誤的索引,導(dǎo)致多表的連接操作持續(xù)幾個(gè)小時(shí)的時(shí)間。

      索引對(duì)數(shù)據(jù)庫(kù)的性能影響:1、表掃描需要訪問大量數(shù)據(jù)頁(yè),而索引可以避免表掃描,從而使每次查詢只需訪問索引頁(yè)和少量的數(shù)據(jù)頁(yè)即可;2、對(duì)于某些查詢,數(shù)據(jù)可以從索引中獲得,而無需訪問數(shù)據(jù)庫(kù)(索引覆蓋):3、由于聚簇索引的插入是在數(shù)據(jù)頁(yè)上分布進(jìn)行的,因而避免了將表的最后一頁(yè)作為“熱點(diǎn)”進(jìn)行大量的插入操作(Sybase):4、如果索引的順序與order by子句的順序相同,則通過索引查詢可以避免排序的過程;5、索引(唯一索引)還可以使表中的數(shù)據(jù)唯一;6、索引在加快查詢數(shù)據(jù)速度的同時(shí),因?yàn)樵跀?shù)據(jù)更新時(shí)還要更新索引,因而會(huì)減慢數(shù)據(jù)更新速度。

      (三)關(guān)系系統(tǒng)調(diào)優(yōu)。現(xiàn)在市面上的數(shù)據(jù)庫(kù)系統(tǒng)幾乎都是關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),由于關(guān)系系統(tǒng)所覆蓋的應(yīng)用領(lǐng)域不同,如果想使關(guān)系系統(tǒng)高效執(zhí)行,就必須具體仔細(xì)的分析特定的應(yīng)用。

      1、表的設(shè)計(jì)及其規(guī)范化。應(yīng)用設(shè)計(jì)的開始步驟之一就是表的設(shè)計(jì),表是數(shù)據(jù)存儲(chǔ)的載體,運(yùn)行以后對(duì)表的修改牽涉很多,所以在設(shè)計(jì)之初就應(yīng)該做好規(guī)范化工作。

      一個(gè)關(guān)系模式結(jié)這分解可以得到不同關(guān)系模式集合,也就是說分解方法不是唯一的。最小冗余的要求必須以分解后的數(shù)據(jù)庫(kù)能夠表達(dá)原來數(shù)據(jù)庫(kù)所有信息為前提來實(shí)現(xiàn)。其根本目標(biāo)是節(jié)省存儲(chǔ)空間,避免數(shù)據(jù)不一致性,提高對(duì)關(guān)系的操作效率,同時(shí)滿足應(yīng)用需求。實(shí)際上,并不一定要求全部模式都達(dá)到BCNF不可。有時(shí)故意保留部分冗余可能更方便數(shù)據(jù)查詢。尤其對(duì)于那些更新頻度不高,查詢頻度極高的數(shù)據(jù)庫(kù)系統(tǒng)更是如此。

      規(guī)范化固然重要,但是,雖然非規(guī)范化的關(guān)系存在很多的缺點(diǎn),但是為了性能,有時(shí)卻不得不按照逆規(guī)范化的思想來設(shè)計(jì)關(guān)系模式。這主要出現(xiàn)在某些特定的查詢。一般來說,對(duì)于經(jīng)常更新的關(guān)系,逆規(guī)范化會(huì)降低性能。但是在低更新率的情況下,逆規(guī)范化可能會(huì)提高性能。因此,一些應(yīng)用采用逆規(guī)范化方法設(shè)計(jì)檔案數(shù)據(jù)的模式,而使用規(guī)范化方法設(shè)計(jì)在線數(shù)據(jù)的模式。

      2、查詢調(diào)優(yōu)。查詢是數(shù)據(jù)庫(kù)使用者進(jìn)行的主要操作之一。在這方面,最初的調(diào)優(yōu)方法是試用那些沒有壞的影響的方法。大部分的變化,比如增加索引、改變模式或者修改事務(wù)的長(zhǎng)度都對(duì)全局有影響,有時(shí)是有害的負(fù)面影響。而重寫查詢使之以更高的速度運(yùn)行則只有有利的影響。

      三、結(jié)語(yǔ)

      數(shù)據(jù)庫(kù)性能調(diào)優(yōu)是知識(shí)密集型的學(xué)科,需要綜合考慮各種復(fù)雜的因素。性能是數(shù)據(jù)庫(kù)應(yīng)用的永恒話題,也是衡量一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)成功與否的重要指標(biāo)。但是,想讓數(shù)據(jù)庫(kù)達(dá)到最優(yōu)性能從來就不是一件簡(jiǎn)單的任務(wù),需要涉及很多方面的知識(shí)。如何讓數(shù)據(jù)庫(kù)性能更加優(yōu)越,還有待我們?cè)谝院蟮膽?yīng)用中不斷完善。

      猜你喜歡
      數(shù)據(jù)庫(kù)系統(tǒng)事務(wù)應(yīng)用程序
      “事物”與“事務(wù)”
      基于分布式事務(wù)的門架數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      河湖事務(wù)
      刪除Win10中自帶的應(yīng)用程序
      數(shù)據(jù)庫(kù)系統(tǒng)shell腳本應(yīng)用
      微細(xì)銑削工藝數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)與開發(fā)
      實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)安全采集方案
      核反應(yīng)堆材料數(shù)據(jù)庫(kù)系統(tǒng)及其應(yīng)用
      SQLServer自治事務(wù)實(shí)現(xiàn)方案探析
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      江北区| 杂多县| 凤城市| 孟州市| 肇源县| 大埔区| 湛江市| 延吉市| 思南县| 通化市| 湖南省| 甘谷县| 肇东市| 平阴县| 永福县| 富源县| 霍城县| 五台县| 包头市| 光山县| 佛冈县| 涿鹿县| 阿巴嘎旗| 温州市| 盐城市| 南汇区| 灌云县| 乌恰县| 江孜县| 佛冈县| 旅游| 拉萨市| 夹江县| 临沭县| 商都县| 福贡县| 通化市| 凤凰县| 高密市| 娱乐| 西昌市|