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

Oracle性能診斷不能不知的秘籍

數(shù)據(jù)庫 Oracle
如果你想提高你的Oracle運(yùn)行性能,而機(jī)子又不行咋辦?那你就快給你的Oracle性能診斷吧,剔除不必要的內(nèi)存消耗,以下就是你不為之的秘籍。

Oracle性能診斷的方法有很多,下面就此講講常用的幾種方法。一般而言,如果需要進(jìn)行性能調(diào)整,那么,肯定是存在一些性能問題。所以,診斷,要從用戶所提出的性能問題開始著手,做到有的放矢。

用戶可能會(huì)羅列出一大堆的性能問題,你比如說:某個(gè)操作比較慢呀,或者說當(dāng)達(dá)到多少用戶的并發(fā)時(shí)CPU和內(nèi)存使用達(dá)到100%,死鎖等等。所以,我們要對(duì)用戶列出的這些性能問題進(jìn)行分析。當(dāng)然,首先得從用戶認(rèn)為最迫切的性能問題開始著手進(jìn)行分析。

明確了性能問題,這是系統(tǒng)調(diào)優(yōu)的***步,讓我們有一個(gè)出發(fā)點(diǎn),但是分析性能問題,找到性能問題產(chǎn)生的原因,這是一個(gè)復(fù)雜的過程,并且是性能調(diào)優(yōu)的非常重要的一個(gè)過程。只有找到了產(chǎn)生性能問題的根源,你才好著手進(jìn)行調(diào)整。

在Orace性能診斷上,首先要有一個(gè)思路。從整體到局部,從面到點(diǎn),逐步定位是一個(gè)不錯(cuò)的方法。那么,什么是從整體到局部呢?

Oracle數(shù)據(jù)庫本質(zhì)上是運(yùn)行于某一種計(jì)算機(jī)上的應(yīng)用軟件,所以,這個(gè)整體,我指的就是運(yùn)行Oracle的計(jì)算機(jī)(即服務(wù)器)。如果,性能診斷問題的根源是因?yàn)橛?jì)算機(jī)的性能低下所導(dǎo)致,那么,做其它的調(diào)整將不能根本改變Oracle的性能狀況,我們得從調(diào)整這個(gè)整體開始(即服務(wù)器的性能)。

服務(wù)器的性能我覺得由2個(gè)因素所組成:硬件和操作系統(tǒng)。

(1)硬件包括:CPU,內(nèi)存,存儲(chǔ)等。檢查的方法是我們可以登錄到服務(wù)器發(fā)布一些命令來查看服務(wù)器CPU,內(nèi)存,以及硬盤等的I/O速率,如UNIX下及類UNIX(LINUX)下可以發(fā)布:

Top,vmstat,iostat,free等等命令來檢查這些硬件資源的使用狀況。還可以使用一些第三方的測(cè)量工具。比如,有一些工具是專門用來測(cè)試硬盤的傳輸速率的,從中我們可以知道硬盤的平均帶寬是多少。
 通過這些工具,如果檢查出來,發(fā)現(xiàn)是由于服務(wù)器的硬件資源所導(dǎo)致的性能問題,那么,我們就可以建議提升服務(wù)器的硬件。

(2)第二個(gè)因素是OS。因?yàn)镺racle是運(yùn)行于OS之上的,所以O(shè)S的一些設(shè)置,也會(huì)導(dǎo)致一些性能問題。特別是在LINUX下,一些參數(shù)的設(shè)置,如:內(nèi)核參數(shù),交換空間(swap)等等,也能影響到整個(gè)系統(tǒng)的性能。所以,我們也可以在服務(wù)器上查看一下這些設(shè)置。如果是windows服務(wù)器,windows提供了一個(gè)性能測(cè)量工具,可以測(cè)量每秒的內(nèi)存頁交換(paging)等指標(biāo),從這些指標(biāo)中我們也可以檢查出內(nèi)存是否足夠,以及虛擬內(nèi)存是否足夠等等一些問題。

檢查完服務(wù)器,就可以從Oracle本身開始進(jìn)行分析了。分析的思路,我也是從整體到局部,從面到點(diǎn)。
整體:首先,我們可以從了解一下Oracle數(shù)據(jù)庫的規(guī)劃開始,這些規(guī)劃具體包括:存儲(chǔ)的規(guī)劃,內(nèi)存的規(guī)劃,實(shí)例參數(shù)設(shè)置等等,下面我分別作一些簡單的介紹。

(1)存儲(chǔ)的規(guī)劃(storage planning):實(shí)際上指的就是Oracle數(shù)據(jù)庫的磁盤規(guī)劃,這關(guān)系到Oracle的I/O性能。舉例:oracle的數(shù)據(jù)文件磁盤是否和oracle軟件磁盤分開?應(yīng)用系統(tǒng)是否有創(chuàng)建單獨(dú)的表空間?有沒有為索引和大對(duì)象創(chuàng)建單獨(dú)的表空間?多路復(fù)用(multiplexed)的控制文件是否分別存放于不同的磁盤?日志組的不同成員是否存放于不同磁盤?等等,這些都或多或少地影響到oracle的I/O性能。

(2)內(nèi)存規(guī)劃(memory planning):實(shí)際上指的是oracle SGA和PGA的分配是否合理?以及組成SGA的各個(gè)內(nèi)存組件的內(nèi)存分配是否達(dá)到***?一般而言,對(duì)于排序操作(sort operation)比較多的系統(tǒng),比如,我們的XPC系統(tǒng),或者報(bào)表系統(tǒng),就應(yīng)該適當(dāng)?shù)囟喾峙湟恍﹥?nèi)存給PGA。當(dāng)然,PGA總體目標(biāo)也要根據(jù)系統(tǒng)的連接數(shù)來確定。在SGA方面,總體原則是,盡量把大部分的內(nèi)存分配給數(shù)據(jù)庫高速緩存,以增加內(nèi)存的命中率。至于其它組件如:JAVA池,大池等分配幾十M就可以(32M一般就夠了)。而對(duì)于共享池,則要根據(jù)CPU的性能來決定。一般而言,如果CPU很強(qiáng)(如采用多路CPU),則共享池設(shè)小一點(diǎn)也無所謂。一般而言,設(shè)80M~300M都能滿足系統(tǒng)需求,再多設(shè)的話對(duì)系統(tǒng)性能增加不大,反而浪費(fèi)內(nèi)存。

(3)實(shí)例的參數(shù):有些Oracle實(shí)例的參數(shù)能夠影響到整個(gè)系統(tǒng)的性能。你比如:與oracle優(yōu)化器相關(guān)的一些參數(shù)設(shè)置,與SQL共享和重用相關(guān)的參數(shù),與是否預(yù)先將SGA裝載到內(nèi)存相關(guān)的參數(shù)等等.我們都要檢查一些,這些參數(shù)設(shè)置是否合理.

那么,我們?cè)趺茨軌驒z查出這些整體的設(shè)置是否就是導(dǎo)致性能問題的根源呢?Oracle有提供一個(gè)用于診斷性能問題的工具包(statspack).當(dāng)然,可能也有一些第三方的用于oracle性能診斷的工具,但是我想沒有其它工具比ORACLE本身提供的工具更全面,更準(zhǔn)確了。

STATSPACK需要安裝。安裝后我們需要設(shè)置一下檢查的時(shí)間間隔,實(shí)際上就是創(chuàng)建一個(gè)oracle的JOB。Statspack或根據(jù)我們?cè)O(shè)定的時(shí)間間隔來從oracle的動(dòng)態(tài)性能視圖中捕捉一些與性能相關(guān)的數(shù)據(jù),然后根據(jù)一定的公式進(jìn)行計(jì)算,生成一個(gè)有關(guān)于oracle各項(xiàng)性能指標(biāo)的報(bào)告。報(bào)告羅列了一些實(shí)際的活動(dòng)狀況(負(fù)載,內(nèi)存命中率等等),***等待事件,以及TOP SQL等內(nèi)容,是我們進(jìn)行Oracle性能診斷的一個(gè)比較綜合的一個(gè)工具。

局部:oracle的整體調(diào)整完畢后,我們就可能逐步逐步調(diào)整某個(gè)局部了。你比如,我們可以根據(jù)用戶反映出來的問題:比如說,在XPC中點(diǎn)擊某個(gè)BUTTON或進(jìn)行某項(xiàng)操作,系統(tǒng)響應(yīng)比較慢,這個(gè)時(shí)候,我們就可能針對(duì)這個(gè)問題,來進(jìn)行定位。導(dǎo)致這個(gè)操作慢有可能是由于這個(gè)操作執(zhí)行的SQL語句比較慢,也有可能是由于我們的JAVA代碼寫得不夠好,實(shí)現(xiàn)比較復(fù)雜,結(jié)構(gòu)不合理等等所導(dǎo)致。往往,這樣的性能診斷,要DBA和相關(guān)開發(fā)人員一起協(xié)同完成。在DB這一層,我們可以使用ORACLE的一些實(shí)用工具,如SQL TRACE等來捕捉這些SQL,然后對(duì)這個(gè)SQL的進(jìn)行分析,并進(jìn)行優(yōu)化,從而解決這些性能問題。根據(jù)實(shí)踐,相當(dāng)大一部分性能優(yōu)化是在SQL語句一級(jí)著手的。

除了上面我所描述的這些以外,其它與性能相關(guān)的情況也需要調(diào)查一下。如:Oracle是采用何種類型的優(yōu)化器?如果是采用基于成本的優(yōu)化器(CBO),是否有定期進(jìn)行統(tǒng)計(jì)(gather shema statistics)?統(tǒng)計(jì)的時(shí)間間隔設(shè)置是否合理?

另外一個(gè)跟SQL性能相關(guān)的因素就是索引。我們也可以檢查一下是否在相關(guān)表上有否建索引?這些索引建得是否合理?是否有存在從來沒有被使用過的索引(通過索引監(jiān)控工具來檢查)?

***一個(gè)檢查的項(xiàng)可能是和并發(fā)有關(guān)。假如用戶反映說系統(tǒng)有時(shí)會(huì)出現(xiàn)死鎖,這時(shí),我們就要檢查一下導(dǎo)致死鎖的原因了,如捕獲相關(guān)的引起死鎖的SQL語句,分析是由于應(yīng)用的架構(gòu)設(shè)計(jì)所導(dǎo)致還是由于業(yè)務(wù)邏輯本身所導(dǎo)致。在DB這一級(jí),我們可以檢查一下事務(wù)的隔離等級(jí)是否高置合理。

【編輯推薦】

  1. 查看Oracle性能常用的SQL語句
  2. Oracle數(shù)據(jù)庫的性能的完全保護(hù)的措施
  3. Oracle多表查詢優(yōu)化的代碼示例
  4. Oracle索引聚簇表的數(shù)據(jù)加載的實(shí)操
  5. Oracle數(shù)據(jù)庫優(yōu)化器的三種類型
責(zé)任編輯:佚名
相關(guān)推薦

2010-06-01 09:48:43

云計(jì)算CIO整合

2017-12-25 13:26:36

CNN深度學(xué)習(xí)網(wǎng)絡(luò)

2009-12-21 15:43:07

2009-12-11 13:33:36

VS2008技巧

2020-08-18 10:51:18

AIoT數(shù)據(jù)泄露網(wǎng)絡(luò)攻擊

2024-06-03 00:00:05

2019-07-08 10:40:03

線程池策略CPU

2016-12-15 17:15:44

2017-01-16 15:01:27

中安威士

2017-01-19 14:44:14

2019-03-15 10:20:00

Android 谷歌架構(gòu)

2021-05-27 05:25:11

SpringLifecycleSmartLifecy

2018-04-16 10:54:00

數(shù)據(jù)中心UPS電池

2009-08-03 09:29:26

2016-05-19 17:10:27

銀行

2009-06-22 14:17:00

2019-07-29 16:34:44

物聯(lián)網(wǎng)網(wǎng)絡(luò)技術(shù)

2022-01-05 08:01:48

前端技術(shù)編程

2012-09-17 09:59:46

創(chuàng)業(yè)創(chuàng)業(yè)教訓(xùn)創(chuàng)業(yè)家

2019-11-13 08:37:34

數(shù)據(jù)庫筒倉基礎(chǔ)架構(gòu)
點(diǎn)贊
收藏

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

主站蜘蛛池模板: av天天看 | 国产成人综合在线 | 求毛片 | 亚洲高清视频一区二区 | 国产精品成人在线播放 | 国产精品国产亚洲精品看不卡15 | 欧美激情亚洲天堂 | 日韩中文视频 | 国产视频欧美 | 国产一区二区三区在线看 | 久视频在线 | 国产视频在线一区二区 | 亚洲精品一区二区久 | 欧美一区二区成人 | 日韩中文字幕 | 欧美一区二区三区久久精品视 | 91九色在线观看 | 黄色精品 | 免费日韩网站 | 欧美激情视频一区二区三区免费 | 久久中文字幕一区 | 国产69久久精品成人看动漫 | 一区二区三区在线 | 国产农村妇女毛片精品久久麻豆 | 91视视频在线观看入口直接观看 | 精品一二三区在线观看 | 免费h在线 | 911精品美国片911久久久 | 麻豆一区| 亚洲国产成人av好男人在线观看 | 欧美精品在线一区二区三区 | 日韩亚洲欧美一区 | 少妇性l交大片免费一 | 久久成人免费视频 | 欧美一区二区三区 | 亚洲图片视频一区 | 国产一区二区在线视频 | 欧美日韩在线观看一区 | 日韩精品在线看 | 欧美日韩免费视频 | 在线观看免费av网 |