成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle數(shù)據(jù)庫(kù)的性能優(yōu)調(diào)技術(shù)總結(jié)

數(shù)據(jù)庫(kù) Oracle
以下的文章主要介紹的是Oracle數(shù)據(jù)庫(kù)的性能優(yōu)調(diào)技術(shù),以下就是文章的詳細(xì)內(nèi)容介紹,希望會(huì)給你帶來(lái)一些幫助在此方面。

我們大家都知道Oracle數(shù)據(jù)庫(kù)的規(guī)模越擴(kuò)大,數(shù)據(jù)庫(kù)系統(tǒng)相關(guān)的性能問(wèn)題也就隨之增多,所以,我們應(yīng)如何對(duì)Oracle數(shù)據(jù)庫(kù)的調(diào)優(yōu)以顯得至關(guān)重要,以及如何有效的使用有限的計(jì)算機(jī)系統(tǒng)資源為更多的用戶服務(wù)?

如何保證用戶的響應(yīng)速度和服務(wù)質(zhì)量?這些問(wèn)題都屬于服務(wù)器性能優(yōu)化的范疇。

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

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

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

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

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

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

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

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

2.3恰當(dāng)編寫(xiě)訪問(wèn)數(shù)據(jù)的SQL語(yǔ)句。

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

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

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


將表和索引分開(kāi);

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

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

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

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

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

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

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

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

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

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

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

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


vmstat命令

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

sar命令

用于監(jiān)控交換、分頁(yè)、磁盤和CPU活動(dòng)。下面命令用于每10秒顯示10次分頁(yè)活動(dòng)的概要:
% 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ù)塊命中率的前提下減少Oracle數(shù)據(jù)庫(kù)緩沖區(qū)的數(shù)量,以釋放一些內(nèi)存;

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

3.1.2控制分頁(yè)

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

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

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

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

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

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

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

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

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

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

3.2.1 SGA的分配及使用效率

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

l 共享池(Shared pool)

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

庫(kù)緩存:

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


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

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

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

 

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

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

exec dbms_shared_pool.keep(對(duì)象名)

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

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

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

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

 

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

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

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

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

3.2.2 I/O和資源競(jìng)爭(zhēng)

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

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

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

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

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

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

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

5. 結(jié)束語(yǔ)

Oracle數(shù)據(jù)庫(kù)的性能調(diào)整相當(dāng)重要,但難度也較大。數(shù)據(jù)庫(kù)管理員需要綜合運(yùn)用上面介紹的規(guī)律,在數(shù)據(jù)庫(kù)建立時(shí),就能根據(jù)應(yīng)用的需要合理設(shè)計(jì)分配表空間以及存儲(chǔ)參數(shù)、內(nèi)存使用初始化參數(shù),對(duì)以后的數(shù)據(jù)庫(kù)性能有很大的益處。只有認(rèn)真分析Oracle運(yùn)行過(guò)程當(dāng)中出現(xiàn)的各種性能問(wèn)題,才能保證Oracle數(shù)據(jù)庫(kù)高效可靠地運(yùn)行。

還需要指出的是:數(shù)據(jù)庫(kù)的性能調(diào)整是一個(gè)系統(tǒng)工程,涉及的方面很多,不能僅僅根據(jù)一個(gè)時(shí)間點(diǎn)的情況就斷定數(shù)據(jù)庫(kù)運(yùn)行性能的好與壞。如何有效地進(jìn)行調(diào)整,數(shù)據(jù)庫(kù)管理員需要經(jīng)過(guò)反反復(fù)復(fù)的過(guò)程。這些都需要在大量的實(shí)踐工作中不斷地積累經(jīng)驗(yàn),從而更好地進(jìn)行數(shù)據(jù)庫(kù)的調(diào)優(yōu)。

【編輯推薦】

  1. Oracle 11g R2數(shù)據(jù)衛(wèi)士的增強(qiáng)特性表現(xiàn)
  2. Oracle Redo的并行機(jī)制運(yùn)行中要用到的代碼
  3. Oracle提高SQL的執(zhí)行效率的3種好用方法
  4. Oracle通過(guò)其實(shí)際存儲(chǔ)過(guò)程中返回相關(guān)數(shù)據(jù)集
  5. Oracle臨時(shí)表用法的經(jīng)驗(yàn)心得
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2010-04-07 13:32:39

Oracle調(diào)優(yōu)

2011-07-08 16:02:54

HBase

2023-04-03 10:25:00

數(shù)據(jù)庫(kù)性能調(diào)優(yōu)

2011-08-15 18:09:46

查詢性能調(diào)優(yōu)索引優(yōu)化

2011-05-24 09:45:41

Oracle數(shù)據(jù)庫(kù)系統(tǒng)調(diào)優(yōu)

2011-05-20 15:02:01

Oracle性能調(diào)優(yōu)

2011-05-18 09:39:19

Oracle數(shù)據(jù)庫(kù)性能優(yōu)化

2019-08-13 08:32:14

MySQL數(shù)據(jù)庫(kù)性能調(diào)優(yōu)

2010-04-19 15:21:37

Oracle數(shù)據(jù)庫(kù)

2011-04-25 09:12:47

LinuxIO數(shù)據(jù)庫(kù)

2022-05-10 10:02:51

openGauss性能調(diào)優(yōu)數(shù)據(jù)庫(kù)

2023-09-11 08:38:38

Oracle數(shù)據(jù)庫(kù)

2023-11-10 09:25:36

Oracle數(shù)據(jù)庫(kù)

2010-04-21 14:00:48

Oracle數(shù)據(jù)庫(kù)

2010-03-10 11:29:47

MySQL數(shù)據(jù)庫(kù)性能調(diào)

2011-05-20 14:23:01

Oracle調(diào)優(yōu)

2010-05-05 14:04:31

Oracle 性能

2016-03-25 09:59:38

性能調(diào)優(yōu)LinuxMySQL

2012-01-10 14:35:08

JavaJVM

2011-04-18 13:46:24

數(shù)據(jù)庫(kù)設(shè)計(jì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: aaaa一级毛片 | 国产亚洲高清视频 | 欧美精品一区二区在线观看 | 国产99热精品 | 久在线视频播放免费视频 | 国产精品久久久久久久久久软件 | 91亚洲国产成人久久精品网站 | 国产一区二区欧美 | 男女搞网站 | 91精品国产欧美一区二区成人 | 久草福利 | 国产精品日本一区二区在线播放 | 国产在线精品一区 | 日韩不卡三区 | 成人免费一区二区三区牛牛 | 日韩视频在线免费观看 | 精品视频一区二区三区 | 久久av网| 依人成人 | 亚洲播放| 国产在线麻豆精品入口 | 一级免费在线视频 | 在线观看av免费 | 国产精品18毛片一区二区 | 久久综合九色综合欧美狠狠 | 91精品国产综合久久香蕉922 | 亚洲精品乱码久久久久久蜜桃91 | 九九久久国产精品 | 国产精品视频一二三区 | 伊人亚洲 | 九九精品在线 | 你懂的免费在线 | 午夜丰满寂寞少妇精品 | 美女一级a毛片免费观看97 | 青青草原综合久久大伊人精品 | 免费的色网站 | 日韩在线免费视频 | 一区二区av| 一区二区精品 | 久久亚洲天堂 | 国产亚洲欧美日韩精品一区二区三区 |