自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

那么,我們怎么能夠檢查出這些整體的設置是否就是導致性能問題的根源呢?Oracle有提供一個用于診斷性能問題的工具包(statspack).當然,可能也有一些第三方的用于oracle性能診斷的工具,但是我想沒有其它工具比ORACLE本身提供的工具更全面,更準確了。

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

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

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

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

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

【編輯推薦】

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

2010-06-01 09:48:43

云計算CIO整合

2009-12-21 15:43:07

2017-12-25 13:26:36

CNN深度學習網(wǎng)絡

2009-12-11 13:33:36

VS2008技巧

2019-07-08 10:40:03

線程池策略CPU

2020-08-18 10:51:18

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

2024-06-03 00:00:05

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 谷歌架構

2021-05-27 05:25:11

SpringLifecycleSmartLifecy

2009-08-03 09:29:26

2018-04-16 10:54:00

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

2009-06-22 14:17:00

2016-05-19 17:10:27

銀行

2019-07-29 16:34:44

物聯(lián)網(wǎng)網(wǎng)絡技術

2022-01-05 08:01:48

前端技術編程

2012-09-17 09:59:46

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

2019-11-13 08:37:34

數(shù)據(jù)庫筒倉基礎架構
點贊
收藏

51CTO技術棧公眾號