婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Oracle數(shù)據(jù)庫性能優(yōu)化技術(shù)開發(fā)者網(wǎng)絡(luò)Oracle

Oracle數(shù)據(jù)庫性能優(yōu)化技術(shù)開發(fā)者網(wǎng)絡(luò)Oracle

熱門標(biāo)簽:廣州市400電話辦理 修改高德地圖標(biāo)注 語音電話機(jī)器人缺點(diǎn) 百變地圖標(biāo)注 語音電話機(jī)器人營銷方案 宜賓外呼系統(tǒng)廠家 淮安自動外呼系統(tǒng)開發(fā) 地圖標(biāo)注原件 南通防封外呼系統(tǒng)運(yùn)營商
正在看的ORACLE教程是:Oracle數(shù)據(jù)庫性能優(yōu)化技術(shù)開發(fā)者網(wǎng)絡(luò)Oracle。

介紹:細(xì)處著手,巧處用功。高手和菜鳥之間的差別就是:高手什么都知道,菜鳥知道一些。電腦小技巧收集最新奇招高招,讓你輕松踏上高手之路。 
  摘要: Oracle數(shù)據(jù)庫是當(dāng)前應(yīng)用最廣泛的大型數(shù)據(jù)庫之一,而其性優(yōu)化直接關(guān)系到系統(tǒng)的運(yùn)行效率。本文以數(shù)據(jù)庫性能優(yōu)化的基本原則為出發(fā)點(diǎn),闡述了在數(shù)據(jù)庫設(shè)計(jì)階段如何避免競爭和如何優(yōu)化數(shù)據(jù)訪問,在數(shù)據(jù)庫運(yùn)行階段如何從操作系統(tǒng)和數(shù)據(jù)庫實(shí)例級別上調(diào)整內(nèi)存和I/O來達(dá)到數(shù)據(jù)庫性能優(yōu)化的各種技術(shù)。

  關(guān)鍵詞:Oracle數(shù)據(jù)庫;性能優(yōu)化;內(nèi)存;I/O

  1. 引言

  隨著網(wǎng)絡(luò)應(yīng)用和電子商務(wù)的不斷發(fā)展,各個站點(diǎn)的訪問量越來越大,數(shù)據(jù)庫規(guī)模也隨之不斷的擴(kuò)大,數(shù)據(jù)庫系統(tǒng)的性能問題就越來越突出,因此,如何對數(shù)據(jù)庫進(jìn)行調(diào)優(yōu)至關(guān)重要:如何使用有限的計(jì)算機(jī)系統(tǒng)資源為更多的用戶服務(wù)?如何保證用戶的響應(yīng)速度和服務(wù)質(zhì)量?這些問題都屬于服務(wù)器性能優(yōu)化的范疇。

  作為全球第一大數(shù)據(jù)庫廠商,Oracle數(shù)據(jù)庫在國內(nèi)外獲得了諸多成功應(yīng)用,據(jù)統(tǒng)計(jì),全球93%的上市.COM公司、65家"財(cái)富全球100強(qiáng)"企業(yè)不約而同地采用Oracle數(shù)據(jù)庫來開展電子商務(wù)。我國很多企業(yè)、政府單位及電子商務(wù)網(wǎng)站也采用了Oracle作為數(shù)據(jù)庫服務(wù)器。Oracle數(shù)據(jù)庫服務(wù)器是高度可優(yōu)化的軟件產(chǎn)品,經(jīng)常性的調(diào)整可以優(yōu)化應(yīng)用系統(tǒng)的性能,防止出現(xiàn)系統(tǒng)瓶頸。

  數(shù)據(jù)庫性能優(yōu)化的基本原則就是:通過盡可能少的磁盤訪問獲得所需要的數(shù)據(jù)。要評價(jià)數(shù)據(jù)庫的性能,需要在數(shù)據(jù)庫調(diào)節(jié)前后比較其評價(jià)指標(biāo):響應(yīng)時間和吞吐量之間的權(quán)衡、數(shù)據(jù)庫的可用性、數(shù)據(jù)庫的命中率以及內(nèi)存的使用效率,以此來衡量調(diào)節(jié)措施的效果和指導(dǎo)調(diào)整的方向。 

  對Oracle數(shù)據(jù)庫進(jìn)行性能調(diào)整時,應(yīng)當(dāng)按照一定的順序進(jìn)行,因?yàn)橄到y(tǒng)在前面步驟中進(jìn)行的調(diào)整可以避免后面的一些不必要調(diào)整或者代價(jià)很大的調(diào)整。一般來說可以從兩個階段入手:

  1、設(shè)計(jì)階段:對其邏輯結(jié)構(gòu)和物理結(jié)構(gòu)進(jìn)行優(yōu)化設(shè)計(jì),使之在滿足需求條件的情況下,系統(tǒng)性能達(dá)到最佳,系統(tǒng)開銷達(dá)到最小;

  2、數(shù)據(jù)庫運(yùn)行階段:采取操作系統(tǒng)級、數(shù)據(jù)庫級的一些優(yōu)化措施來使系統(tǒng)性能最佳; 
  2. 在系統(tǒng)設(shè)計(jì)開發(fā)階段調(diào)整數(shù)據(jù)庫

  為了充分利用Oracle數(shù)據(jù)庫的功能特性,在設(shè)計(jì)信息系統(tǒng)時,數(shù)據(jù)庫設(shè)計(jì)人員需要根據(jù)業(yè)務(wù)情況(如訪問量或客戶端數(shù)量)和現(xiàn)有資源狀況(如數(shù)據(jù)庫服務(wù)器的配置)考慮系統(tǒng)結(jié)構(gòu)和數(shù)據(jù)庫的邏輯結(jié)構(gòu)的設(shè)計(jì):

  2.1調(diào)整應(yīng)用程序結(jié)構(gòu)設(shè)計(jì)。

  即應(yīng)用程序采用的是傳統(tǒng)的C/S兩層體系結(jié)構(gòu),還是B/W/D三層體系結(jié)構(gòu)。不同的應(yīng)用程序體系結(jié)構(gòu)要求的數(shù)據(jù)庫資源是不同的。

  2.2恰當(dāng)使用分區(qū)、索引及存檔功能。

  如果某種業(yè)務(wù)的數(shù)據(jù)量增長非常快,可以考慮存放該業(yè)務(wù)的數(shù)據(jù)庫表是否使用Oracle數(shù)據(jù)庫的分區(qū)功能;對于經(jīng)常訪問的數(shù)據(jù)庫表是否需要建立索引;對于經(jīng)常訪問但是當(dāng)業(yè)務(wù)流程完成后不再變動的數(shù)據(jù)可采用放入歷史檔案的方法來實(shí)現(xiàn)應(yīng)用系統(tǒng)中訪問盡可能少的數(shù)據(jù)量。

  2.3恰當(dāng)編寫訪問數(shù)據(jù)的SQL語句。

  良好的SQL語句可以被數(shù)據(jù)庫重復(fù)使用而減少分析時間;恰當(dāng)?shù)氖褂盟饕墒乖L問的數(shù)據(jù)塊大大減少從而減少響應(yīng)時間。應(yīng)用程序的執(zhí)行最終將歸結(jié)為數(shù)據(jù)庫中的SQL語句執(zhí)行,因此SQL語句的執(zhí)行效率決定了Oracle數(shù)據(jù)庫的性能。Oracle公司推薦使用Oracle語句優(yōu)化器(Oracle Optimizer)和行鎖管理器(row-level manager)來調(diào)整優(yōu)化SQL語句。

  2.4調(diào)整硬盤I/O

  這一步是在信息系統(tǒng)開發(fā)之前完成的。數(shù)據(jù)庫管理員可以將組成同一個表空間的數(shù)據(jù)文件放在不同的硬盤上,做到硬盤之間I/O負(fù)載均衡。在磁盤比較富裕的情況下還應(yīng)該遵循以下原則:


   將表和索引分開;

   創(chuàng)造用戶表空間,與系統(tǒng)表空間(system)分開磁盤;

   創(chuàng)建表和索引時指定不同的表空間;

   創(chuàng)建回滾段專用的表空間,防止空間競爭影響事務(wù)的完成;

   創(chuàng)建臨時表空間用于排序操作,盡可能的防止數(shù)據(jù)庫碎片存在于多個表空間中。

  2.5確定數(shù)據(jù)塊大小和存儲參數(shù)。

  由于數(shù)據(jù)庫的塊大小在數(shù)據(jù)庫創(chuàng)建以后就不能在修改(除非重建數(shù)據(jù)庫),因此為了減少數(shù)據(jù)鏈接和行遷移,又提高磁盤空間的利用率,在設(shè)計(jì)數(shù)據(jù)庫時要確定合適的數(shù)據(jù)塊大小和存儲參數(shù)。通常我們是根據(jù)樣例數(shù)據(jù)確定數(shù)據(jù)塊大小,而根據(jù)業(yè)務(wù)現(xiàn)狀和未來發(fā)展趨勢確定存儲參數(shù)。

[NextPage]

3. 在數(shù)據(jù)庫運(yùn)行階段調(diào)整數(shù)據(jù)庫

  數(shù)據(jù)庫運(yùn)行階段調(diào)整數(shù)據(jù)庫包括兩個方面:操作系統(tǒng)級的調(diào)整;數(shù)據(jù)庫級的調(diào)整。

  3.1 操作系統(tǒng)級的調(diào)整

  實(shí)施操作系統(tǒng)級調(diào)整的主要目的是減少內(nèi)存交換,減少分頁,使SGA(System Globle Area)可留駐內(nèi)存。

  3.1.1減少內(nèi)存交換

  內(nèi)存交換(swapping)可能會造成很大的內(nèi)存開銷,應(yīng)將它最小化。運(yùn)行在Solaris Unix操作系統(tǒng)上的Oracle數(shù)據(jù)庫,可利用vmstat或sar命令來檢查交換,查看到系統(tǒng)級內(nèi)存和硬盤I/O的使用情況,調(diào)整unix數(shù)據(jù)緩沖池的大小、每個進(jìn)程所能使用的內(nèi)存大小等參數(shù)。


   vmstat命令

  它報(bào)告Solaris上的進(jìn)程、虛擬內(nèi)存、磁盤、分頁和CPU的活動情況。下面命令將顯示系統(tǒng)每5秒鐘做的事情的概要:
% vmstat 5 

   sar命令

  用于監(jiān)控交換、分頁、磁盤和CPU活動。下面命令用于每10秒顯示10次分頁活動的概要:
% sar -p 10 10

  若系統(tǒng)內(nèi)存交換較多,且需要節(jié)省內(nèi)存,可采用以下措施:

  1) 避免運(yùn)行不必要的系統(tǒng)daemon進(jìn)程或應(yīng)用程序進(jìn)程;

  2) 在不明顯影響數(shù)據(jù)塊命中率的前提下減少數(shù)據(jù)庫緩沖區(qū)的數(shù)量,以釋放一些內(nèi)存;

  3) 減少UNIX文件緩沖區(qū)的數(shù)量(特別是在使用裸設(shè)備時)。

  3.1.2控制分頁

  少量的內(nèi)存分頁不會太顯著地影響系統(tǒng)的性能,因?yàn)閼?yīng)用程序不必全部放在內(nèi)存中。但是分頁過多將會造成系統(tǒng)性能下降。為了檢測過多的分頁,可在快速響應(yīng)或空閑期間運(yùn)行測量,并與響應(yīng)遲緩時的測量進(jìn)行比較。可通過以下辦法來解決:

   使用vmstat或sar -p監(jiān)控分頁;

    安裝更多的內(nèi)存;

    將一些工作移到另一系統(tǒng)中;

    配置系統(tǒng)核心使用更少的內(nèi)存;

    保持SGA在單個共享內(nèi)存段中。

  3.1.3使SGA(System Globle Area)留駐內(nèi)存

  SGA是對數(shù)據(jù)庫數(shù)據(jù)進(jìn)行快速訪問的一個系統(tǒng)全局區(qū),若SGA本身需要頻繁地進(jìn)行釋放、分配,則不可能達(dá)到快速訪問數(shù)據(jù)的目的,因此,要求SGA駐留內(nèi)存。這時,我們可以重新配置UNIX核心,調(diào)整一些操作系統(tǒng)參數(shù)以達(dá)到增加共享內(nèi)存的目的。

  3.2 數(shù)據(jù)庫級的調(diào)整

  每一個Oracle實(shí)例都是由一組Oracle后臺進(jìn)程和SGA的一個內(nèi)存區(qū)組成的。這組后臺進(jìn)程會自動的讀寫數(shù)據(jù)庫的數(shù)據(jù)文件,因此,數(shù)據(jù)庫性能可以被這些因素所影響:SGA各部分的分配是否合理,使用效率是否正常;I/O和鎖競爭是否較多。

  3.2.1 SGA的分配及使用效率

  分配給每個實(shí)例的內(nèi)存,即SGA的使用效率如何,會大大影響數(shù)據(jù)庫系統(tǒng)的性能。SGA由下列部分組成:共享池、數(shù)據(jù)塊緩沖區(qū)、重做日志緩沖區(qū)、大池組成。

  l 共享池(Shared pool)

  共享池存放庫緩存(存儲共享SQL和PL/SQL區(qū))和數(shù)據(jù)字典緩存(數(shù)據(jù)庫對象信息)以及會話期間信息(對于MTS)。由于這些信息是應(yīng)用程序需要經(jīng)常訪問的,因此這些信息需要保持高的命中率。可以通過以下語句來確認(rèn)共享池?cái)?shù)據(jù)的命中率:

  庫緩存:

select gethitratio from v$librarycache 應(yīng)大于90%
select sum(reloads)/sum(pins) from v$librarycache 應(yīng)小于1

[1] [2] 下一頁

正在看的ORACLE教程是:Oracle數(shù)據(jù)庫性能優(yōu)化技術(shù)開發(fā)者網(wǎng)絡(luò)Oracle。%


  數(shù)據(jù)字典緩存:

select sum(getmisses)/sum(gets) from v$rowcache 應(yīng)小于15%

  由于程序設(shè)計(jì)人員的水平參差不齊,可能存在大的匿名塊,這會導(dǎo)致SQL不能重用,因此需要找出大的匿名塊以轉(zhuǎn)換為存儲過程達(dá)到重用:

select * from v$sqlarea where command_type=47 and length(sql_text)>500

  而對于一些應(yīng)用系統(tǒng)非常頻繁使用的SQL對象如存儲過程、函數(shù)、包等,可以通過釘在內(nèi)存中的方式來防止由于共享池太小被移出:

exec dbms_shared_pool.keep(對象名)

   數(shù)據(jù)塊緩沖區(qū)(Db block buffer):

  數(shù)據(jù)塊緩沖區(qū)存放用戶所經(jīng)常訪問的數(shù)據(jù)文件的數(shù)據(jù)塊內(nèi)容以及用戶修改的數(shù)據(jù)內(nèi)容。數(shù)據(jù)庫把數(shù)據(jù)文件里的內(nèi)容讀到內(nèi)存中,下次需要時直接從內(nèi)存中讀取,從而減少了磁盤的I/O和響應(yīng)時間。當(dāng)然,一般只在比較小的數(shù)據(jù)表(如常用代碼表)才緩存到內(nèi)存中。

  由于數(shù)據(jù)快緩沖區(qū)中不可能存放所有的數(shù)據(jù),因此可使用LRU算法來確定移出哪些數(shù)據(jù)塊,但又盡量保證有較高的數(shù)據(jù)命中率。

  查看數(shù)據(jù)塊命中率的SQL語句為:

select 1-(phy.value/(cur.value+con.value)) from v$sysstat cur,v$sysstat con,v$sysstat phy
where cur.name='db block gets' and con.name='consistent gets'
and phy.name='physical gets'

  如果這個命中率小于0.85,就要考慮為數(shù)據(jù)塊緩沖區(qū)分配更多的內(nèi)存了。

   重做日志緩沖區(qū)(Log buffer):

  重做日志緩沖區(qū)存放從用戶內(nèi)存區(qū)復(fù)制來的每個DML或DDL語句的重做條目。如果這個緩沖區(qū)分配太小會導(dǎo)致沒有足夠的空間來放重做條目而等待。

  3.2.2 I/O和資源競爭

  由于有眾多的進(jìn)程要寫數(shù)據(jù)文件,因此需要通過I/O調(diào)整來解決I/O瓶頸問題。如果在設(shè)計(jì)階段有效地考慮了表空間的合理分配,就能有效地在一定程度上減少I/O競爭。在數(shù)據(jù)庫運(yùn)行時,由于數(shù)據(jù)的動態(tài)增長,原來分配給表或索引的空間已經(jīng)用完,Oracle會自動分配空間給這些數(shù)據(jù)庫對象。而這個動態(tài)分配會對系統(tǒng)性能有所影響,所以要求:

   避免動態(tài)空間管理

   表空間的本地化管理,以減少與數(shù)據(jù)字典表空間的磁盤競爭。

  在系統(tǒng)設(shè)計(jì)和試運(yùn)行階段數(shù)據(jù)量相對較小,效率低下的SQL可能并不會影響系統(tǒng)響應(yīng)時間,但當(dāng)系統(tǒng)數(shù)據(jù)量增長到一定程度時,需要在系統(tǒng)運(yùn)行時監(jiān)控并找出是哪些SQL不能有效使用索引或缺少索引,并進(jìn)行相應(yīng)調(diào)整:建立索引;修改SQL寫法。

  另外,在Oracle中,需要采用一些機(jī)制來保證數(shù)據(jù)庫對象在使用期間的穩(wěn)定性和數(shù)據(jù)的一致性,如使用鎖存器(latch)、鎖(lock)等。因此爭用和這些機(jī)制相關(guān)的資源會影響數(shù)據(jù)庫的性能。為了減少這種資源競爭,可以通過調(diào)整數(shù)據(jù)庫的相關(guān)初始化參數(shù)(如db_block_lru_latches、dml_locks)來減少資源的爭用,優(yōu)化數(shù)據(jù)庫性能。

  4. 一些常用的性能優(yōu)化手段和工具

  Oracle數(shù)據(jù)庫系統(tǒng)提供了一些工具和腳本來獲取數(shù)據(jù)庫的性能指標(biāo)和優(yōu)化的方法。如使用utlbstat.sql和utlestat.sql腳本獲取一段時間內(nèi)數(shù)據(jù)庫的內(nèi)存、磁盤I/O等的情況;使用動態(tài)性能視圖和數(shù)據(jù)字典視圖來獲取命中率和系統(tǒng)等待事件等信息。當(dāng)然,也可以使用Oracle Enterprise Manager圖形化工具來監(jiān)控。

  5. 結(jié)束語

  Oracle數(shù)據(jù)庫的性能調(diào)整相當(dāng)重要,但難度也較大。數(shù)據(jù)庫管理員需要綜合運(yùn)用上面介紹的規(guī)律,在數(shù)據(jù)庫建立時,就能根據(jù)應(yīng)用的需要合理設(shè)計(jì)分配表空間以及存儲參數(shù)、內(nèi)存使用初始化參數(shù),對以后的數(shù)據(jù)庫性能有很大的益處。只有認(rèn)真分析Oracle運(yùn)行過程當(dāng)中出現(xiàn)的各種性能問題,才能保證Oracle數(shù)據(jù)庫高效可靠地運(yùn)行。還需要指出的是:數(shù)據(jù)庫的性能調(diào)整是一個系統(tǒng)工程,涉及的方面很多,不能僅僅根據(jù)一個時間點(diǎn)的情況就斷定數(shù)據(jù)庫運(yùn)行性能的好與壞。如何有效地進(jìn)行調(diào)整,數(shù)據(jù)庫管理員需要經(jīng)過反反復(fù)復(fù)的過程。這些都需要在大量的實(shí)踐工作中不斷地積累經(jīng)驗(yàn),從而更好地進(jìn)行數(shù)據(jù)庫的調(diào)優(yōu)。


 

上一頁    

上一頁  [1] [2] 

您可能感興趣的文章:
  • SQL Server數(shù)據(jù)庫性能優(yōu)化技術(shù)
  • SQL Server數(shù)據(jù)庫的高性能優(yōu)化經(jīng)驗(yàn)總結(jié)
  • 數(shù)據(jù)庫中identity字段不必是系統(tǒng)產(chǎn)生的唯一值 性能優(yōu)化方法(新招)
  • 數(shù)據(jù)庫性能優(yōu)化三:程序操作優(yōu)化提升性能
  • 數(shù)據(jù)庫性能優(yōu)化二:數(shù)據(jù)庫表優(yōu)化提升性能
  • 數(shù)據(jù)庫性能優(yōu)化一:數(shù)據(jù)庫自身優(yōu)化提升性能
  • MySQL性能優(yōu)化的一些技巧幫助你的數(shù)據(jù)庫
  • 解析MySQL數(shù)據(jù)庫性能優(yōu)化的六大技巧
  • 數(shù)據(jù)庫訪問性能優(yōu)化

標(biāo)簽:通化 嘉峪關(guān) 襄陽 股票投資 南平 南平 池州 聊城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle數(shù)據(jù)庫性能優(yōu)化技術(shù)開發(fā)者網(wǎng)絡(luò)Oracle》,本文關(guān)鍵詞  Oracle,數(shù)據(jù)庫,性能,優(yōu)化,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle數(shù)據(jù)庫性能優(yōu)化技術(shù)開發(fā)者網(wǎng)絡(luò)Oracle》相關(guān)的同類信息!
  • 本頁收集關(guān)于Oracle數(shù)據(jù)庫性能優(yōu)化技術(shù)開發(fā)者網(wǎng)絡(luò)Oracle的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 辛集市| 吴川市| 渝北区| 友谊县| 古交市| 台东市| 凤山市| 杭锦旗| 荔浦县| 浦县| 枝江市| 滁州市| 镇沅| 浦北县| 吴忠市| 黄龙县| 松江区| 普格县| 余姚市| 西宁市| 巴楚县| 乐东| 巴里| 临江市| 牟定县| 万宁市| 吉隆县| 五莲县| 河间市| 客服| 普安县| 澄江县| 北安市| 道真| 沂源县| 乡宁县| 淅川县| 唐山市| 石嘴山市| 静安区| 三明市|