是的。
站在用戶的角度思考問題,與客戶深入溝通,找到喀喇沁網(wǎng)站設(shè)計(jì)與喀喇沁網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋喀喇沁地區(qū)。
一、理解數(shù)據(jù)庫基本常識(shí),sql語法,pl/sql語法及簡(jiǎn)單應(yīng)用,oracle體系結(jié)構(gòu),oracle性能優(yōu)化,掌握一個(gè)開發(fā)工具,掌握一些DBA管理知識(shí),不斷積累經(jīng)驗(yàn)。
二、oracle?先看最基礎(chǔ)的東西,自己再裝個(gè)oracle?9i或oracle?10g之類的,先登陸sql*plus
練習(xí)基本的建表,等DDL.DML.DCL語句操作。
三、Oracle是一個(gè)一個(gè)比較大的體系結(jié)構(gòu),隨著Oracle公司的逐步發(fā)展,他的業(yè)務(wù)領(lǐng)域也在不段的擴(kuò)張,進(jìn)來Oracle公司更是先后收購bea,sun公司。
四、可以從Oracle的PL/SQL開始學(xué)習(xí),PL/SQL是Oralce獨(dú)立的SQL語言集,里面涉及到sql語言,oracle的PL/SQL包,調(diào)用,異常,游標(biāo)等一系列知識(shí)。要進(jìn)行這個(gè)學(xué)習(xí),你必須要要了解到一些基礎(chǔ)的數(shù)據(jù)庫知識(shí),sql基礎(chǔ)知識(shí)等,通過這個(gè)學(xué)習(xí),你如果能夠比較好的掌握住PL/SQL知識(shí)的話,也不錯(cuò),據(jù)我了解,國內(nèi)一些比較大的保險(xiǎn),金融公司對(duì)這個(gè)是有一定需求量的。
五、從一些入門型的介紹開始,了解到大致的Oralce的內(nèi)存結(jié)構(gòu),主要的進(jìn)程部件,和存儲(chǔ)管理。然后具體的去研究每個(gè)大項(xiàng)中對(duì)應(yīng)在Oracle里表現(xiàn)。和性能優(yōu)化這塊了。
Oracle有很多值得學(xué)習(xí)的地方,這里我們主要介紹Oracle優(yōu)化,包括介紹可變參數(shù)的Oracle優(yōu)化等方面。數(shù)據(jù)庫系統(tǒng)和操作系統(tǒng)一樣,在計(jì)算機(jī)上安裝成功后,還需要進(jìn)一步配置和優(yōu)化,從而使其具有更強(qiáng)大的功能和運(yùn)行在最佳狀態(tài)。如果在設(shè)計(jì)階段因?yàn)楦鞣N因素沒有進(jìn)行較為合理的配置和計(jì)劃,那么就需要在后期對(duì)數(shù)據(jù)庫系統(tǒng)進(jìn)行優(yōu)化。
數(shù)據(jù)庫系統(tǒng)性能的優(yōu)化,除了在設(shè)計(jì)階段對(duì)其邏輯存儲(chǔ)結(jié)構(gòu)和物理存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)進(jìn)行優(yōu)化,使之在滿足需求條件下,時(shí)空開銷性能最佳外,還可在運(yùn)行階段,采取一些優(yōu)化措施,使系統(tǒng)性能最佳。本專題所討論的性能優(yōu)化主要指運(yùn)行階段的性能優(yōu)化,即討論如何使用Oracle所提供的優(yōu)化手段來提高系統(tǒng)性能。大多數(shù)性能問題并不是一種孤立的癥狀,而是系統(tǒng)設(shè)計(jì)的結(jié)果,因此性能優(yōu)化就集中在那些導(dǎo)致不可接受特征的同一的、固定的和潛在的問題上。優(yōu)化是數(shù)據(jù)庫設(shè)計(jì)中“計(jì)劃”、 “設(shè)計(jì)”、“監(jiān)視”和“優(yōu)化”四大步驟的最后一步。除了用Oracle優(yōu)化器來優(yōu)化數(shù)據(jù)庫的性能外,DBA還可通過Oracle優(yōu)化的參數(shù)設(shè)置等手段來優(yōu)化數(shù)據(jù)庫的性能,對(duì)參數(shù)的細(xì)微優(yōu)化便能影響系統(tǒng)整體性能。
Oracle性能優(yōu)化基本方法包括一下幾個(gè)步驟 包括
)設(shè)立合理的Oracle性能優(yōu)化目標(biāo)
)測(cè)量并記錄當(dāng)前的Oracle性能
)確定當(dāng)前Oracle性能瓶頸(Oracle等待什么 哪些SQL語句是該等待事件的成分)
)把等待事件記入跟蹤文件
)確定當(dāng)前的OS瓶頸
)優(yōu)化所需的成分(應(yīng)用程序 數(shù)據(jù)庫 I/O 爭(zhēng)用 OS等)
)跟蹤并實(shí)施更改控制過程
)測(cè)量并記錄當(dāng)前性能
)重復(fù)步驟 到 直到滿足優(yōu)化目標(biāo)
下面來一一詳述
設(shè)立合理的Oracle性能優(yōu)化目標(biāo)
重點(diǎn) 關(guān)于設(shè)立目標(biāo)的最重要的一點(diǎn)是它們必須是可量化和可達(dá)到的
方法 目標(biāo)必須是當(dāng)前性能和所需性能的的陳述形式的語句
測(cè)量并記錄當(dāng)前Oracle性能重點(diǎn)
)需要在峰值活動(dòng)時(shí)間獲得當(dāng)前系統(tǒng)性能快照
)關(guān)鍵是要在出現(xiàn)性能問題的時(shí)間段內(nèi)采集信息
)必須在合理的時(shí)間段上采集 一般在峰值期間照幾個(gè)為期 分鐘的快照
確定當(dāng)前Oracle性能瓶頸重點(diǎn) 從Oracle 等待接口v$system_event v$session_event和v$session_wait中獲得等待事件 進(jìn)而找出影響性能的對(duì)象和sql語句 方法如下
)首先 利用v$system_event視圖執(zhí)行下面的查詢查看數(shù)據(jù)庫中某些常見的等待事件
select * from v$system_event
where event in ( buffer busy waits
db file sequential read
db file scattered read
enqueue
free buffer waits
latch free
log file parallel write
log file sync );
)接著 利用下面對(duì)v$session_event和v$session視圖進(jìn)行的查詢 研究具有對(duì)上面顯示的內(nèi)容有貢獻(xiàn)的等待事件的會(huì)話
select se sid s username se event se total_waits se time_waited se average_wait
from v$session s v$session_event se
where s sid = se sid
and se event not like SQL*Net%
and s status = ACTIVE
and s username is not null;
)使用下面查詢找到與所連接的會(huì)話有關(guān)的當(dāng)前等待事件 這些信息是動(dòng)態(tài)的 為了查看一個(gè)會(huì)話的等待最多的事件是什么 需要多次執(zhí)行此查詢
select sw sid s username sw event sw wait_time sw state sw seconds_in_wait SEC_IN_WAIT
from v$session s v$session_wait sw
where s sid = sw sid
and sw event not like SQL*Net%
and s username is not null
order by sw wait_time desc;
)查詢會(huì)話等待事件的詳細(xì)信息
select sid event p text p p text p p text p
from v$session_wait
where sid beeen and
and event not like %SQL%
and event not like %rdbms% ;
)利用P P 的信息 找出等待事件的相關(guān)的段
select owner segment_name segment_type tablespace_name
from dba_extents
where file_id = fileid_in
and blockid_in beeen block_id and block_id + blocks ;
)獲得操作該段的sql語句
select sid getsqltxt(sql_hash_value sql_address)
from v$session
where sid = sid_in;
)getsqltxt函數(shù)
)至此已經(jīng)找到影響性能的對(duì)象和sql語句 可以有針對(duì)性地優(yōu)化
把等待事件記入跟蹤文件
重點(diǎn) 如果在跟蹤系統(tǒng)上的等待事件時(shí) 由于某種原因遇到了麻煩 則可以將這些等待事件記入一個(gè)跟蹤文件 方法如下
)對(duì)于當(dāng)前會(huì)話
alter session set timed_statistics=true;
alter session set max_dump_file_size=unlimited;
alter session set events trace name context forever level ;
)執(zhí)行應(yīng)用程序 然后在USER_DUMP_DEST指出的目錄中找到跟蹤文件
)查看文件中以詞WAIT開始的所有行
)對(duì)于其它的會(huì)話
)確定會(huì)話的進(jìn)程ID(SPID) 下面的查詢識(shí)別出名稱以A開始的所有用戶的會(huì)話進(jìn)程ID
select S Username P Spid from V$SESSION S V$PROCESS P
where S PADDR = P ADDR and S Username like A% ;
)以sysdba進(jìn)入sqlplus執(zhí)行
alter session set timed_statistics=true;
alter session set max_dump_file_size=unlimited;
oradebug setospid
oradebug unlimit
oradebug event trace name context forever level X /* Where X = ( ) */
)跟蹤某個(gè)時(shí)間間隔得會(huì)話應(yīng)用程序
)在USER_DUMP_DEST 的值指出的目錄中利用SPID查看跟蹤文件
)查看文件中以詞WAIT開始的所有行
確定當(dāng)前OS瓶頸 )Windows NT上的監(jiān)控
使用控制面板 〉管理工具 〉性能即可
)UNIX上的監(jiān)控
使用通用性的工具 包括sar iostat cpustat mpstat netstat top osview等
.Oracle性能優(yōu)化所需的成分(應(yīng)用程序 數(shù)據(jù)庫 I/O 爭(zhēng)用 OS等)
.跟蹤并實(shí)施更改控制過程
.測(cè)量并記錄當(dāng)前Oracle性能
lishixinzhi/Article/program/Oracle/201311/18709
你最好買一本專門講ORACLE性能優(yōu)化的書,好好看看\x0d\x0a1、調(diào)整數(shù)據(jù)庫服務(wù)器的性能\x0d\x0aOracle數(shù)據(jù)庫服務(wù)器是整個(gè)系統(tǒng)的核心,它的性能高低直接影響整個(gè)系統(tǒng)的性能,為了調(diào)整Oracle數(shù)據(jù)庫服務(wù)器的性能,主要從以下幾個(gè)方面考慮: \x0d\x0a1.1、調(diào)整操作系統(tǒng)以適合Oracle數(shù)據(jù)庫服務(wù)器運(yùn)行\(zhòng)x0d\x0aOracle數(shù)據(jù)庫服務(wù)器很大程度上依賴于運(yùn)行服務(wù)器的操作系統(tǒng),如果操作系統(tǒng)不能提供最好性能,那么無論如何調(diào)整,Oracle數(shù)據(jù)庫服務(wù)器也無法發(fā)揮其應(yīng)有的性能。 \x0d\x0a1.1.1、為Oracle數(shù)據(jù)庫服務(wù)器規(guī)劃系統(tǒng)資源 \x0d\x0a據(jù)已有計(jì)算機(jī)可用資源, 規(guī)劃分配給Oracle服務(wù)器資源原則是:盡可能使Oracle服務(wù)器使用資源最大化,特別在Client/Server中盡量讓服務(wù)器上所有資源都來運(yùn)行Oracle服務(wù)。 \x0d\x0a1.1.2、調(diào)整計(jì)算機(jī)系統(tǒng)中的內(nèi)存配置 \x0d\x0a多數(shù)操作系統(tǒng)都用虛存來模擬計(jì)算機(jī)上更大的內(nèi)存,它實(shí)際上是硬盤上的一定的磁盤空間。當(dāng)實(shí)際的內(nèi)存空間不能滿足應(yīng)用軟件的要求時(shí),操作系統(tǒng)就將用這部分的磁盤空間對(duì)內(nèi)存中的信息進(jìn)行頁面替換,這將引起大量的磁盤I/O操作,使整個(gè)服務(wù)器的性能下降。為了避免過多地使用虛存,應(yīng)加大計(jì)算機(jī)的內(nèi)存。 \x0d\x0a1.1.3、為Oracle數(shù)據(jù)庫服務(wù)器設(shè)置操作系統(tǒng)進(jìn)程優(yōu)先級(jí) \x0d\x0a不要在操作系統(tǒng)中調(diào)整Oracle進(jìn)程的優(yōu)先級(jí),因?yàn)樵贠racle數(shù)據(jù)庫系統(tǒng)中,所有的后臺(tái)和前臺(tái)數(shù)據(jù)庫服務(wù)器進(jìn)程執(zhí)行的是同等重要的工作,需要同等的優(yōu)先級(jí)。所以在安裝時(shí),讓所有的數(shù)據(jù)庫服務(wù)器進(jìn)程都使用缺省的優(yōu)先級(jí)運(yùn)行。 \x0d\x0a1.2、調(diào)整內(nèi)存分配\x0d\x0aOracle數(shù)據(jù)庫服務(wù)器保留3個(gè)基本的內(nèi)存高速緩存,分別對(duì)應(yīng)3種不同類型的數(shù)據(jù):庫高速緩存,字典高速緩存和緩沖區(qū)高速緩存。庫高速緩存和字典高速緩存一起構(gòu)成共享池,共享池再加上緩沖區(qū)高速緩存便構(gòu)成了系統(tǒng)全程區(qū)(SGA)。SGA是對(duì)數(shù)據(jù)庫數(shù)據(jù)進(jìn)行快速訪問的一個(gè)系統(tǒng)全程區(qū),若SGA本身需要頻繁地進(jìn)行釋放、分配,則不能達(dá)到快速訪問數(shù)據(jù)的目的,因此應(yīng)把SGA放在主存中,不要放在虛擬內(nèi)存中。內(nèi)存的調(diào)整主要是指調(diào)整組成SGA的內(nèi)存結(jié)構(gòu)的大小來提高系統(tǒng)性能,由于Oracle數(shù)據(jù)庫服務(wù)器的內(nèi)存結(jié)構(gòu)需求與應(yīng)用密切相關(guān),所以內(nèi)存結(jié)構(gòu)的調(diào)整應(yīng)在磁盤I/O調(diào)整之前進(jìn)行。 \x0d\x0a1.2.1、庫緩沖區(qū)的調(diào)整 \x0d\x0a庫緩沖區(qū)中包含私用和共享SQL和PL/SQL區(qū),通過比較庫緩沖區(qū)的命中率決定它的大小。要調(diào)整庫緩沖區(qū),必須首先了解該庫緩沖區(qū)的活動(dòng)情況,庫緩沖區(qū)的活動(dòng)統(tǒng)計(jì)信息保留在動(dòng)態(tài)性能表v$librarycache數(shù)據(jù)字典中,可通過查詢?cè)摫韥砹私馄浠顒?dòng)情況,以決定如何調(diào)整。 \x0d\x0a \x0d\x0aSelect sum(pins),sum(reloads) from v$librarycache; \x0d\x0a \x0d\x0aPins列給出SQL語句,PL/SQL塊及被訪問對(duì)象定義的總次數(shù);Reloads列給出SQL 和PL/SQL塊的隱式分析或?qū)ο蠖x重裝載時(shí)在庫程序緩沖區(qū)中發(fā)生的錯(cuò)誤。如果sum(pins)/sum(reloads) ≈0,則庫緩沖區(qū)的命中率合適;若sum(pins)/sum(reloads)1, 則需調(diào)整初始化參數(shù) shared_pool_size來重新調(diào)整分配給共享池的內(nèi)存量。 \x0d\x0a1.2.2、數(shù)據(jù)字典緩沖區(qū)的調(diào)整 \x0d\x0a數(shù)據(jù)字典緩沖區(qū)包含了有關(guān)數(shù)據(jù)庫的結(jié)構(gòu)、用戶、實(shí)體信息。數(shù)據(jù)字典的命中率,對(duì)系統(tǒng)性能影響極大。數(shù)據(jù)字典緩沖區(qū)的使用情況記錄在動(dòng)態(tài)性能表v$librarycache中,可通過查詢?cè)摫韥砹私馄浠顒?dòng)情況,以決定如何調(diào)整。 \x0d\x0a \x0d\x0aSelect sum(gets),sum(getmisses) from v$rowcache; \x0d\x0a \x0d\x0aGets列是對(duì)相應(yīng)項(xiàng)請(qǐng)求次數(shù)的統(tǒng)計(jì);Getmisses 列是引起緩沖區(qū)出錯(cuò)的數(shù)據(jù)的請(qǐng)求次數(shù)。對(duì)于頻繁訪問的數(shù)據(jù)字典緩沖區(qū),sum(getmisses)/sum(gets)10%~15%。若大于此百分?jǐn)?shù),則應(yīng)考慮增加數(shù)據(jù)字典緩沖區(qū)的容量,即需調(diào)整初始化參數(shù)shared_pool_size來重新調(diào)整分配給共享池的內(nèi)存量。 \x0d\x0a1.2.3、緩沖區(qū)高速緩存的調(diào)整 \x0d\x0a用戶進(jìn)程所存取的所有數(shù)據(jù)都是經(jīng)過緩沖區(qū)高速緩存來存取,所以該部分的命中率,對(duì)性能至關(guān)重要。緩沖區(qū)高速緩存的使用情況記錄在動(dòng)態(tài)性能表v$sysstat中,可通過查詢?cè)摫韥砹私馄浠顒?dòng)情況,以決定如何調(diào)整。 \x0d\x0a \x0d\x0aSelect name,value from v$sysstat where name in ('dbblock gets','consistent gets','physical reads'); \x0d\x0a \x0d\x0adbblock gets和consistent gets的值是請(qǐng)求數(shù)據(jù)緩沖區(qū)中讀的總次數(shù)。physical reads的值是請(qǐng)求數(shù)據(jù)時(shí)引起從盤中讀文件的次數(shù)。從緩沖區(qū)高速緩存中讀的可能性的高低稱為緩沖區(qū)的命中率,計(jì)算公式: \x0d\x0a \x0d\x0aHit Ratio=1-(physical reds/(dbblock gets+consistent gets)) \x0d\x0a \x0d\x0a如果Hit Ratio60%~70%,則應(yīng)增大db_block_buffers的參數(shù)值。db_block_buffers可以調(diào)整分配給緩沖區(qū)高速緩存的內(nèi)存量,即db_block_buffers可設(shè)置分配緩沖區(qū)高速緩存的數(shù)據(jù)塊的個(gè)數(shù)。緩沖區(qū)高速緩存的總字節(jié)數(shù)=db_block_buffers的值*db_block_size的值。db_block_size 的值表示數(shù)據(jù)塊大小的字節(jié)數(shù),可查詢 v$parameter 表: \x0d\x0a \x0d\x0aselect name,value from v$parameter where name='db_block_size'; \x0d\x0a \x0d\x0a在修改了上述數(shù)據(jù)庫的初始化參數(shù)以后,必須先關(guān)閉數(shù)據(jù)庫,在重新啟動(dòng)數(shù)據(jù)庫后才能使新的設(shè)置起作用。