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

Oracle性能調(diào)整的誤區(qū)

數(shù)據(jù)庫(kù) Oracle
oracle數(shù)據(jù)庫(kù)是一種大型數(shù)據(jù)庫(kù)系統(tǒng),一般應(yīng)用于商業(yè),政府部門(mén),它的功能很強(qiáng)大,能夠處理大批量的數(shù)據(jù),在網(wǎng)絡(luò)方面也用的非常多。Oracle數(shù)據(jù)性能調(diào)整對(duì)于Oracle數(shù)據(jù)庫(kù)來(lái)說(shuō)是很重要的,那么本文將為大家講述Oracle性能調(diào)整的誤區(qū)。

導(dǎo)讀:Oracle數(shù)據(jù)庫(kù)的發(fā)展可以說(shuō)是告訴發(fā)展,憑借著超強(qiáng)的能力,Oracle數(shù)據(jù)的性能是很好的,在Oracle數(shù)據(jù)庫(kù)管理員操作時(shí)經(jīng)常會(huì)遇到一些性能調(diào)整的誤區(qū),給工作人員的操作帶來(lái)很大的不便,這里我將為大家解析Oracle數(shù)據(jù)庫(kù)性能調(diào)整的誤區(qū)。 

為了提高性能,我們針對(duì)Oracle數(shù)據(jù)庫(kù)本身提供了的方法或方案進(jìn)行過(guò)不少的嘗試,主要包括:

  共享服務(wù)器模式(MTS)

  集群技術(shù)(Clustering)RAC

  分區(qū)

  并行處理(主要是并行查詢(xún))

  Oracle提供的這些特性確實(shí)是用來(lái)進(jìn)行性能改善的,但我們往往忽略了對(duì)自身應(yīng)用特性的分析,它們是否適合于我們。最近,通過(guò)對(duì)這方面知識(shí)的深入了解,發(fā)現(xiàn)我們以前存在一些錯(cuò)誤的認(rèn)識(shí)。我覺(jué)得有必要,大家一起來(lái)改變這種誤解。

  分析之前,先明確一下我們的應(yīng)用特性。數(shù)據(jù)庫(kù)應(yīng)用大體可以分為OLAP和OLTP兩大類(lèi),即:聯(lián)機(jī)事務(wù)分析(數(shù)據(jù)倉(cāng)庫(kù))和聯(lián)機(jī)事務(wù)處理(事務(wù)應(yīng)用)我們的應(yīng)用系統(tǒng),其應(yīng)用特性主要是聯(lián)機(jī)事務(wù)處理,又包含了少量的數(shù)據(jù)倉(cāng)庫(kù)特性。

  1.共享服務(wù)器(MTS)

  Oracle缺省用的是專(zhuān)用服務(wù)器模式,也就是說(shuō)一個(gè)用戶(hù)連接進(jìn)程對(duì)應(yīng)一個(gè)服務(wù)器的進(jìn)程。記得某大醫(yī)院剛啟用的時(shí)候,我們?cè)?jīng)試過(guò)MTS.因?yàn)槁?tīng)說(shuō)MTS在不增加內(nèi)存和CPU的情況下連接更多的客戶(hù)端,結(jié)果并不是我們預(yù)期的那樣。MTS有問(wèn)題嗎?不是,是因?yàn)槲覀儗?duì)MTS不了解,并不是它有問(wèn)題,而是它不是用來(lái)在這種情況下做這件事的。

  一般情況,只有當(dāng)并發(fā)連接數(shù)超過(guò)了操作系統(tǒng)的支持時(shí),才建議使用MTS,否則應(yīng)該使用缺省的專(zhuān)用服務(wù)器模式。也就是說(shuō),在專(zhuān)用服務(wù)器模式下,因?yàn)槎嘁粋€(gè)連接就要多消耗一個(gè)操作系統(tǒng)的進(jìn)程,只有當(dāng)并發(fā)應(yīng)用需求超過(guò)操作系統(tǒng)的允許連接數(shù)時(shí),才有必要考慮MTS.如果現(xiàn)有系統(tǒng),物理上支持100個(gè)連接的專(zhuān)用服務(wù)器數(shù)據(jù)庫(kù),改為使用共享服務(wù)器模式,也許支持1000個(gè)連接,但同時(shí)活動(dòng)的連接可能只有100個(gè)。一般2到4個(gè)CPU的服務(wù)器,應(yīng)對(duì)200到400個(gè)并發(fā)連接是足夠的,如果連接增加了,可以增加CPU和內(nèi)存。

  MTS具有以下一些缺點(diǎn):

  1.共享服務(wù)器的代碼路徑比專(zhuān)用服務(wù)器長(zhǎng),所以它天生就比專(zhuān)用服務(wù)器慢。

  2.存在人為死鎖的可能,因?yàn)樗谴械?,所有共享服?wù)器綁定在一起(一個(gè)進(jìn)程),只要一個(gè)連接阻塞,則所有用戶(hù)阻塞,并且極可能死鎖。

  3.存在獨(dú)占事務(wù)的可能,因?yàn)槿绻粋€(gè)會(huì)話的事務(wù)運(yùn)行時(shí)間過(guò)長(zhǎng),它獨(dú)占共享資源,其它用戶(hù)只能等待。(而專(zhuān)用服務(wù)器,每個(gè)客戶(hù)端是一個(gè)會(huì)話)

  4.共享服務(wù)器模式限制了某些數(shù)據(jù)庫(kù)特性,例如:不能單獨(dú)啟動(dòng)和關(guān)閉實(shí)例,不能進(jìn)行介質(zhì)恢復(fù),不能使用Log Miner,不能使用,并且SQL_TRACE沒(méi)有意義(因?yàn)槭枪蚕矶皇钱?dāng)前會(huì)話的)。

  MTS減少的內(nèi)存實(shí)際上是專(zhuān)用服務(wù)器模式下每個(gè)用戶(hù)連接到操作系統(tǒng)進(jìn)程所需的內(nèi)存,但它卻使用SGA的Large_Pool來(lái)分配UGA,拆東墻補(bǔ)西墻,所減少的內(nèi)存是很少的。如果用戶(hù)會(huì)話的連接和斷開(kāi)很頻繁,數(shù)據(jù)庫(kù)進(jìn)程的創(chuàng)建和刪除的開(kāi)銷(xiāo)會(huì)非常大,這種情況最好采用共享服務(wù)器模式(否則,應(yīng)該使用連接池技術(shù))。所幸的是,我們產(chǎn)品的設(shè)計(jì)可能就考慮了這個(gè)因素,使用的是一次連接終身使用(會(huì)話生命周期內(nèi)),避免了這種情況。

  所以,綜上所述,針對(duì)我們產(chǎn)品,建議采用缺省的專(zhuān)用服務(wù)器模式,連接不夠時(shí),通過(guò)增加硬件解決,而不是改用MTS.另外,實(shí)際上,Oracle可以同時(shí)支持共享服務(wù)器和專(zhuān)用服務(wù)器模式,可以指定一個(gè)會(huì)話使用專(zhuān)用服務(wù)器,另一個(gè)會(huì)話使用共享服務(wù)器。

  2.集群技術(shù)(RAC)

  Oracle RAC(Real Application Clusters),我們說(shuō)的雙機(jī)容錯(cuò)就是RAC的一種。 集群技術(shù)的優(yōu)勢(shì)在在于橫向擴(kuò)展性能,并提供高可用性。32位的操作系統(tǒng)有4G內(nèi)存的限制,有些Unix系統(tǒng)(以及非高級(jí)版本的Windows)有CPU個(gè)數(shù)的限制。而集群技術(shù)通過(guò)集合多臺(tái)機(jī)器協(xié)同工作,橫向打破了這種限制。通過(guò)RAC,一臺(tái)服務(wù)器一個(gè)實(shí)例,多臺(tái)機(jī)器構(gòu)成一個(gè)實(shí)例服務(wù)集,客戶(hù)端連接到它上面。這項(xiàng)技術(shù),我們有時(shí)對(duì)客戶(hù)說(shuō)是負(fù)載均衡,實(shí)際上這是片面的,RAC的主要針對(duì)的是CPU和內(nèi)存的負(fù)載均衡,并沒(méi)有實(shí)現(xiàn)磁盤(pán)IO的負(fù)載均衡。(當(dāng)然,磁盤(pán)IO可以通過(guò)Raid或NAS來(lái)實(shí)現(xiàn))

#p#

 RAC還有一個(gè)好處是,提高了可用性,也就是說(shuō)一臺(tái)服務(wù)器壞掉了(注意:不是數(shù)據(jù)存儲(chǔ)介質(zhì)),不影響正常使用。就像負(fù)載均衡一樣,它提高了數(shù)據(jù)層以上的可用性,但不是全部,因?yàn)閿?shù)據(jù)壞了,它也沒(méi)有辦法。(數(shù)據(jù)層,那是Oracle Data Guard的事了,或者干脆說(shuō)那是存儲(chǔ)硬件的事)

  但是,RAC帶來(lái)好處的同時(shí),也帶來(lái)了性能的影響。因?yàn)樗謪f(xié)調(diào)數(shù)據(jù)高速緩存,保證每個(gè)實(shí)例上連接的用戶(hù)看到的緩存數(shù)據(jù)是一致的,所以把以下三方面的矛盾放大:

  1.高速緩存爭(zhēng)用

       2.過(guò)多的I/O 3.鎖定

  也就是說(shuō),如果這些方面有問(wèn)題,用了RAC后問(wèn)題就會(huì)更大,例如:由于SQL沒(méi)有使用綁定變量導(dǎo)致高速緩存爭(zhēng)用,用了RAC會(huì)更嚴(yán)重。

  總之,如果你的服務(wù)器的CPU插滿了,內(nèi)存也加到極限了,而并發(fā)用戶(hù)還在不斷增長(zhǎng),或者你對(duì)故障停機(jī)時(shí)間要求非常高,RAC無(wú)疑是你應(yīng)該選擇的。

  3.分區(qū)

  Oracle的分區(qū)用途在于把大的表或索引分成小的片段,以便更容易管理。我們以前可能錯(cuò)誤的認(rèn)為分區(qū)就是fast=true,可以提高速度,也在腫瘤和兒科做過(guò)這方面的試驗(yàn)。實(shí)際上,在事務(wù)處理系統(tǒng)中,分區(qū)一般不能加快查詢(xún)速度(某些情況下可能會(huì)減少對(duì)共享資源的爭(zhēng)用)。Oracle的分區(qū)特性,主要是針對(duì)數(shù)據(jù)倉(cāng)庫(kù)來(lái)設(shè)計(jì)的,也就是說(shuō)你的某張表如果有100G的大小,最好使用分區(qū),好處有以下三個(gè)方面:

  1.提高可用性

  分區(qū)的原理就是分而治之,如果一張表劃分為多個(gè)分區(qū),其中一個(gè)分區(qū)所在的介質(zhì)出了問(wèn)題,不影響整個(gè)表的其它分區(qū)數(shù)據(jù)的訪問(wèn)。

  2.易于管理

  在數(shù)據(jù)倉(cāng)庫(kù)下,表分成小的片斷,更容易批量的刪除,碎片整理,以及一些并行處理。

  3.提高性能

  這方面,通過(guò)分區(qū)來(lái)達(dá)到是最困難的,必須經(jīng)過(guò)周密的計(jì)算來(lái)安排分區(qū)數(shù)據(jù)。

  分區(qū)的規(guī)劃是復(fù)雜的,拿我們產(chǎn)品應(yīng)用來(lái)說(shuō),一般查詢(xún)涉及到多個(gè)表,多個(gè)索引,假設(shè)我們把病人費(fèi)用記錄,藥品收發(fā)記錄,病人醫(yī)囑記錄這類(lèi)大表建立分區(qū)。顯然,范圍分區(qū)對(duì)我們提升性能用處不大,散列分區(qū)才是我們查詢(xún)需求的,但大多數(shù)數(shù)據(jù)的散列又不夠集中。再加上,這些表上的索引這么多,常用的ID,時(shí)間類(lèi)索引就不少,很少有人能做到把它們?nèi)窟M(jìn)行全局分區(qū)或準(zhǔn)確的進(jìn)行范圍分區(qū)(實(shí)際上可能根本無(wú)法按需求進(jìn)行多個(gè)索引的范圍分區(qū))。如果查詢(xún)經(jīng)常涉及多個(gè)索引,如何保證用到的每個(gè)索引都在一個(gè)分區(qū)上,如果不是,必然掃描多個(gè)分區(qū),增加邏輯I/O和CPU時(shí)間,從而增加查詢(xún)時(shí)間。(數(shù)據(jù)分布在不同物理存儲(chǔ)介質(zhì)的情況,在下面的并行處理中再討論)

  再來(lái)看一下,某些情況下可能會(huì)減少對(duì)共享資源的爭(zhēng)用是指什么,是指并行修改和更新會(huì)更快。仔細(xì)分析,我們分區(qū)的原則是什么?一般最常用的可能是按時(shí)間段進(jìn)行范圍分區(qū),這樣,修改和更新絕大多數(shù)還是在同一個(gè)分區(qū)上進(jìn)行,所以對(duì)減少共享資源的爭(zhēng)用這方面,基本沒(méi)有什么效果。(有按科室ID進(jìn)行散列分區(qū)的對(duì)應(yīng)的唯一應(yīng)用需求嗎?有基于列表分區(qū)(典型特征值)的對(duì)應(yīng)的唯一應(yīng)用需求嗎?基本上沒(méi)有。)分區(qū)主要從并行的角度來(lái)提高性能,但事務(wù)處理系統(tǒng)本身應(yīng)用特性決定了它不適合這種技術(shù)。也就是說(shuō),針對(duì)我們產(chǎn)品的事務(wù)處理應(yīng)用特點(diǎn),根本沒(méi)有必要采用分區(qū)技術(shù)。

  4.并行處理

  根據(jù)我們的應(yīng)用特點(diǎn),主要分析并行查詢(xún)。一般要求配合分區(qū)特性,多CPU硬件。自O(shè)racle 8.1.6起,增加了一個(gè)自動(dòng)調(diào)節(jié)并行查詢(xún)的選項(xiàng):PARALLEL_AUTOMATIC_TUNING=TRUE在相應(yīng)的表上設(shè)置PARALLEL參數(shù),Oracle就會(huì)在適當(dāng)?shù)臅r(shí)候自動(dòng)并行化該表上的操作。并行查詢(xún)對(duì)事務(wù)處理系統(tǒng)基本上沒(méi)有用。因?yàn)椴⑿胁樵?xún)的設(shè)計(jì)是針對(duì)數(shù)據(jù)倉(cāng)庫(kù)中的單用戶(hù)完全消耗100的資源而做的。而事務(wù)處理中,往往有很多并發(fā)用戶(hù),他們爭(zhēng)用共用資源,所以你想辦法讓一個(gè)用戶(hù)占用所有的資源是適得其反。

在以后進(jìn)行Oracle數(shù)據(jù)庫(kù)性能調(diào)整時(shí),要特別注意上文中講到的性能調(diào)整誤區(qū),如果錯(cuò)了就及時(shí)糾正過(guò)來(lái),避免造成更大的麻煩,很高興與大家分享關(guān)于Oracle數(shù)據(jù)庫(kù)性能調(diào)整的誤區(qū),希望能夠幫助到大家。

【編輯推薦】

  1. Oracle虛擬專(zhuān)用數(shù)據(jù)控制方法應(yīng)用
  2. 入侵Oracle數(shù)據(jù)庫(kù)常用操作命令
  3. 復(fù)制或遷移Oracle數(shù)據(jù)庫(kù)的最簡(jiǎn)單方法

 

責(zé)任編輯:迎迎 來(lái)源: 中國(guó)IT實(shí)驗(yàn)室
相關(guān)推薦

2011-04-08 17:33:07

Oracle性能

2010-05-07 18:14:08

Oracle性能調(diào)整

2010-04-22 10:30:11

Oracle RAC

2010-04-07 16:54:55

Oracle性能

2009-02-01 10:45:18

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

2010-04-12 11:02:28

Oracle性能

2010-04-06 12:48:12

Oracle性能

2010-04-07 16:02:29

Oracle性能

2010-04-20 15:41:38

Oracle sql

2010-04-12 17:38:51

Oracle性能調(diào)整

2010-04-19 17:09:30

Oracle sql

2010-04-19 13:37:57

Oracle調(diào)整

2011-05-25 13:55:02

Oracle

2011-05-25 14:35:47

Oracle緩沖區(qū)調(diào)整性能

2010-04-26 13:47:02

Oracle性能調(diào)整

2010-04-20 15:30:58

Oracle sql

2010-04-07 17:04:49

Oracle性能

2010-04-12 17:19:16

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

2010-04-16 14:30:13

Oracle 9i

2010-04-14 09:16:39

Oracle 9i
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 精品中文字幕视频 | 亚洲手机视频在线 | a在线免费观看视频 | 日本精品视频在线观看 | 91欧美| 欧美日韩国产一区二区三区 | 亚洲国产高清在线观看 | 国产欧美精品 | 黄色在线免费观看 | 中文字幕国产一区 | 午夜手机在线视频 | 久久久九九 | 亚洲国产精品一区二区三区 | 在线观看欧美日韩视频 | 亚洲精品久久久久久久久久吃药 | 日韩精品在线观看网站 | 久久久久国产精品一区二区 | 在线精品观看 | av日韩一区 | 精品久久香蕉国产线看观看亚洲 | 国产在线色| 男女羞羞视频在线观看 | 狠狠躁夜夜躁人人爽天天高潮 | 久久r精品| 日韩欧美国产精品一区二区 | 久久专区 | 免费看黄色国产 | 欧美网站一区二区 | 婷婷激情五月网 | 日本一区二区不卡 | 99久久精品免费看国产小宝寻花 | 成人黄色电影在线播放 | 在线欧美一区 | av网站免费在线观看 | 福利视频网址 | 日韩精品一区中文字幕 | 风间由美一区二区三区在线观看 | 国产不卡一区 | 国产高清在线视频 | 全部免费毛片在线播放网站 | 啪一啪在线视频 |