国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

Oracle學(xué)習(xí)應(yīng)用之?dāng)?shù)據(jù)庫(kù)性能優(yōu)化策略

2024-08-29 13:39:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  數(shù)據(jù)庫(kù)系統(tǒng)和操作系統(tǒng)一樣,在計(jì)算機(jī)上安裝成功后,還需要進(jìn)一步配置和優(yōu)化,從而使其具有更強(qiáng)大的功能和運(yùn)行在最佳狀態(tài)。假如在設(shè)計(jì)階段因?yàn)楦鞣N因素沒(méi)有進(jìn)行較為合理的配置和計(jì)劃,那么就需要在后期對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行優(yōu)化。
  
  數(shù)據(jù)庫(kù)系統(tǒng)性能的優(yōu)化,除了在設(shè)計(jì)階段對(duì)其邏輯存儲(chǔ)結(jié)構(gòu)和物理存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)進(jìn)行優(yōu)化,使之在滿(mǎn)足需求條件下,時(shí)空開(kāi)銷(xiāo)性能最佳外,還可在運(yùn)行階段,采取一些優(yōu)化措施,使系統(tǒng)性能最佳。本專(zhuān)題所討論的性能優(yōu)化主要指運(yùn)行階段的性能優(yōu)化,即討論如何使用Oracle所提供的優(yōu)化手段來(lái)提高系統(tǒng)性能。大多數(shù)性能問(wèn)題并不是一種孤立的癥狀,而是系統(tǒng)設(shè)計(jì)的結(jié)果,因此性能優(yōu)化就集中在那些導(dǎo)致不可接受特征的同一的、固定的和潛在的問(wèn)題上。優(yōu)化是數(shù)據(jù)庫(kù)設(shè)計(jì)中“計(jì)劃”、“設(shè)計(jì)”、“監(jiān)視”和“優(yōu)化”四大步驟的最后一步。 除了用Oracle優(yōu)化器來(lái)優(yōu)化數(shù)據(jù)庫(kù)的性能外,DBA還可通過(guò)優(yōu)化Oracle的參數(shù)設(shè)置等手段來(lái)優(yōu)化數(shù)據(jù)庫(kù)的性能,對(duì)參數(shù)的細(xì)微優(yōu)化便能影響系統(tǒng)整體性能。
  
  為了有目的優(yōu)化系統(tǒng)性能,首先應(yīng)明確優(yōu)化目標(biāo),然后再根據(jù)目標(biāo)優(yōu)化各種初始參數(shù)的設(shè)置,以達(dá)到更好效果??捎腥缦聨讉€(gè)優(yōu)化目標(biāo):
  
  ◆ 應(yīng)用程序設(shè)計(jì)的優(yōu)化
  
  ◆ 指定類(lèi)型SQL語(yǔ)句的優(yōu)化
  
  ◆ 內(nèi)存使用的優(yōu)化
  
  ◆ 數(shù)據(jù)存儲(chǔ)、物理存儲(chǔ)和邏輯存儲(chǔ)的優(yōu)化
  
  ◆ 網(wǎng)絡(luò)通信量的優(yōu)化
  
  DBA可選定上述一個(gè)或多個(gè)目標(biāo)來(lái)實(shí)施優(yōu)化。性能優(yōu)化主要是通過(guò)優(yōu)化初始化參數(shù)來(lái)實(shí)現(xiàn)。本專(zhuān)題從以下幾個(gè)方面來(lái)談?wù)勅绾蝺?yōu)化Oracle數(shù)據(jù)庫(kù),使其具有最佳性能。
  
  (1)優(yōu)化初始參數(shù)
  
  (2)優(yōu)化內(nèi)存
  
  (3)優(yōu)化I/O
  
  (4)優(yōu)化資源爭(zhēng)用
  
  (5)其它參數(shù)優(yōu)化
  
  可變參數(shù)的優(yōu)化
  
  在對(duì)Oracle數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化時(shí),需要用到許多的參數(shù),其中有一部分參數(shù)對(duì)系統(tǒng)性能影響較大,這部分參數(shù)叫可變參數(shù)。可變參數(shù)按其作用可以分為兩大類(lèi),一大類(lèi)是起限制作用的,如OPEN_CURSORS;另一大類(lèi)是影響系統(tǒng)性能的,如DB_BLOCK_BUFFERS。
  
  在進(jìn)行數(shù)據(jù)庫(kù)系統(tǒng)性能優(yōu)化時(shí),需要熟練把握和了解一些可變參數(shù)。本文討論了一些對(duì)系統(tǒng)性能有較大影響的參數(shù)。
  
  限制類(lèi)可變參數(shù)
  
  (1)DML_LOCKS
  
  該參數(shù)表明多少個(gè)用戶(hù),可同時(shí)能修改多少?gòu)埍?。例?有三個(gè)用戶(hù)同時(shí)修改二張表,則要求表上的總數(shù)為6。若置為0,則組織隊(duì)列不起作用,其性能會(huì)稍有提高。使用該參數(shù)時(shí)不能用DROP TABLE、CREATE INDEX或顯式封鎖。
  
  (2)LICENSE_MAX_session
  
  該參數(shù)指出答應(yīng)并發(fā)用戶(hù)會(huì)話(huà)的最大數(shù)。若此參數(shù)為0,則不能實(shí)施并發(fā)。若并發(fā)的用戶(hù)會(huì)話(huà)數(shù)已達(dá)到此極限,則只有具有RESTRICTED SESSION權(quán)限的用戶(hù)才能連接到服務(wù)器。
  
  (3)LICENSE_MAX_USERS
  
  該參數(shù)指出在一個(gè)數(shù)據(jù)庫(kù)上可建立的最大用戶(hù)數(shù)。當(dāng)達(dá)到最大值時(shí),便不能再建新用戶(hù),可改變此值以放松限制。在LICENSE_MAX_SESSION或LICENSE_MAX_USER為0時(shí),則并發(fā)會(huì)話(huà)或任何用戶(hù)都不能用。若對(duì)不同的實(shí)例,此參數(shù)不同時(shí),則以第一個(gè)登錄的數(shù)據(jù)庫(kù)實(shí)例的參數(shù)為準(zhǔn)。
  
  (4)MAX_DUMP_FILE_SIZE
  
  該參數(shù)指定操作系統(tǒng)中寫(xiě)跟蹤文件的塊的最大值??捎么酥祦?lái)限制跟蹤文件的空間。
  
  (5)OPEN_CURSORS
  
  該參數(shù)指明一個(gè)用戶(hù)進(jìn)程能同時(shí)打開(kāi)光標(biāo)的最大數(shù),它能限制每個(gè)用戶(hù)進(jìn)程占用的內(nèi)存空間量。
  
  (6)OPEN_LINKS
  
  該參數(shù)指定并發(fā)連接到遠(yuǎn)程數(shù)據(jù)庫(kù)的最大用戶(hù)進(jìn)程數(shù)。若同時(shí)引用多個(gè)數(shù)據(jù)庫(kù),則應(yīng)該增大該值。例如:同時(shí)交替訪(fǎng)問(wèn)A、B和C三個(gè)數(shù)據(jù)庫(kù)時(shí),若OPEN_LINKS設(shè)置為2,則需花費(fèi)等待連接時(shí)間。此參數(shù)只用于分布事務(wù)。若該參數(shù)設(shè)置為0,則不答應(yīng)進(jìn)行分布事務(wù)處理。
  
  (7)PROCESS
  
  該參數(shù)指定同時(shí)連接到Oracle服務(wù)器上的最大用戶(hù)進(jìn)程數(shù)。該參數(shù)值包括6個(gè)后臺(tái)進(jìn)程和一個(gè)登錄,因此,該參數(shù)值為20,則只能有13或14個(gè)并發(fā)用戶(hù)連接到服務(wù)器。
  
  (8)ROW_LOCKING
  
  該參數(shù)指定行封鎖方式。若設(shè)置為“ALWAYS”,則在修改表時(shí)只實(shí)施行封鎖。若設(shè)置為“INTENT”時(shí),則行封鎖只適用于SELECT FOR UPDATE,而在修改時(shí)實(shí)施表封鎖。
  
  影響系統(tǒng)性能類(lèi)可變參數(shù)
  
  (1)CHECKPOINT_PROCESS
  
  該參數(shù)根據(jù)是否要求檢查點(diǎn)而設(shè)置成TRUE或者FALSE。當(dāng)所有緩沖區(qū)的信息寫(xiě)到磁盤(pán)時(shí),檢查點(diǎn)進(jìn)程(CHPT)建立一個(gè)靜態(tài)的點(diǎn)。
在歸檔日志文件中做一個(gè)記號(hào)表示有一個(gè)檢查點(diǎn)發(fā)生。檢查點(diǎn)發(fā)生在歸檔日志轉(zhuǎn)換的時(shí)候或當(dāng)達(dá)到log_checkpoint_interval定義的塊數(shù)的時(shí)候。當(dāng)設(shè)置此參數(shù)為T(mén)RUE時(shí),后臺(tái)進(jìn)程CHPT便可工作。在檢查點(diǎn)期間內(nèi),若日志寫(xiě)進(jìn)程(LGWR)的性能減低,則可用CHPT進(jìn)程加以改善。
  
  (2)DB_BLOCK_CHECKPOINT_BATCH
  
  該參數(shù)的值設(shè)置得較大時(shí),可加速檢查點(diǎn)的完成。當(dāng)指定的值比參數(shù)DB_BLOCK_CHECKPOINT_BATCH大時(shí),其效果和指定最大值相同。
  
  (3)DB_BLOCK_BUFFERS
  
  該參數(shù)是在SGA中可作緩沖用的數(shù)據(jù)庫(kù)塊數(shù)。該參數(shù)決定SGA的大小,對(duì)數(shù)據(jù)庫(kù)性能具有決定性因素。若取較大的值,則可減少I(mǎi)/O次數(shù),但要求內(nèi)存空間較大。每個(gè)緩沖區(qū)的大小由參數(shù)DB_BLOCK_SIZE決定。
  
  (4)DB_BLOCK_SIZE
  
  該參數(shù)表示Oracle數(shù)據(jù)庫(kù)塊的大小,以字節(jié)為單位,典型值為2048或4096。該值一旦設(shè)定則不能改變。它影響表及索引的FREELISTS參數(shù)的最大值。
  
  (5)DB_FILES
  
  該參數(shù)為數(shù)據(jù)庫(kù)運(yùn)行時(shí)可打開(kāi)的數(shù)據(jù)文件最大數(shù)目。
  
  (6)DB_FILE_MULTIBLOCK_READ_COUNT
  
  該參數(shù)表示在順序掃描時(shí)一次I/O操作可讀的最大塊數(shù),該最大塊數(shù)取決于操作系統(tǒng),其值在4至16或者32是比較好。
  
  (7)D1SCRETE_TRANSACTION_ENABLED
  
  該參數(shù)實(shí)現(xiàn)一個(gè)更簡(jiǎn)單、更快的回滾機(jī)制,以改進(jìn)某些事務(wù)類(lèi)型的性能。 當(dāng)設(shè)置為T(mén)RUE時(shí),可改善某些類(lèi)型的事務(wù)性能。
  
  (8)LOG_ARCHIVE_BUFFER_SIZE
  
  此參數(shù)的值依靠于操作系統(tǒng),它與LOG_ARCHIVE_BUFFER 參數(shù)一起用于調(diào)整有歸檔日志的運(yùn)行,使其運(yùn)行速度盡量加快,但不能快到降低性能。僅當(dāng)直接歸檔到磁帶設(shè)備時(shí)才需要增加這些參數(shù)的值,重做日志緩沖區(qū)要等待歸檔日志緩沖區(qū)變得可用。
  
  (9) LOG_ARCHIVE_BUFFER
  
  該參數(shù)指定用于歸檔的日志時(shí)的緩沖區(qū)數(shù)。
  
  (10) LOG_BUFFER
  
  該參數(shù)指明分配給SGA中的日志緩沖區(qū)的字節(jié)數(shù),該參數(shù)值較大時(shí),可減少日志I/O的次數(shù)。對(duì)于繁忙的系統(tǒng)不宜采用大于或等于64K的值。缺省值—般為數(shù)據(jù)庫(kù)塊的4倍。
  
  (11)LOG_CHECKPOINT_TIMEOUT
  
  該參數(shù)指明兩個(gè)檢查點(diǎn)之間的時(shí)間間隔,若指定為0時(shí),則說(shuō)明不答應(yīng)進(jìn)行基于時(shí)間的檢查點(diǎn)。
  
  (12)LOG_CHECKPOINT_INTERVAL
  
  該參數(shù)用來(lái)確定檢查點(diǎn)進(jìn)程的執(zhí)行頻率。這個(gè)數(shù)值設(shè)置成取檢查點(diǎn)之前處理的重做緩沖區(qū)塊的數(shù)量。
  
  (13)LOG_FILES
  
  該參數(shù)指定運(yùn)行期間數(shù)據(jù)庫(kù)可打開(kāi)的日志文件數(shù)。若需要較大的SGA空間,而不需多個(gè)日志文件,則可減少該值。
  
  (14)LOG_SIMULTANEOUS_COPIES
  
  該參數(shù)是日志緩沖區(qū)副本閂鎖的最大數(shù),為同時(shí)寫(xiě)日志項(xiàng)所用。為提高性能,可設(shè)置此參數(shù)為兩倍的CPU數(shù),對(duì)單進(jìn)程系統(tǒng),該值多數(shù)設(shè)置為0,此時(shí)斷開(kāi)閂鎖。
  
  (15)LOG_SMALL_ENTRY_MAX_SIZE
  
  該參數(shù)與LOG_SIMULTANEOUS_COPIES參數(shù)配合使用。若日志項(xiàng)大于此項(xiàng),則在給緩沖區(qū)分配空間并獲得日志復(fù)制閂鎖之后,用戶(hù)進(jìn)程釋放日志復(fù)制閂鎖。
  
  (16)OPTIMIZRER_MODE
  
  若該參數(shù)的值為RULE,則ORACLE優(yōu)化器選擇基于規(guī)則的優(yōu)化;若設(shè)置為COST,并且在數(shù)據(jù)字典中存在有統(tǒng)計(jì)信息,則優(yōu)化器選擇基于代價(jià)的優(yōu)化方法進(jìn)行優(yōu)化。
  
  (17)SEQUENCE_CACHE_ENTRIES
  
  該參數(shù)指明在SGA中可進(jìn)行高速緩存的序列數(shù),用于直接存取。該高速緩存區(qū)是基于最近最少使用(LRU)的算法進(jìn)行治理的。若此值設(shè)置得較高,則可達(dá)到較高的并發(fā)性。
  
  (18)SEQUENCE_CACHE_HASH_BUCKETS
  
  該參數(shù)用于加速查看高速緩沖區(qū)最近請(qǐng)求的最新序列的桶式地址數(shù),每個(gè)桶式地址占8個(gè)字節(jié)。高速緩沖區(qū)以散列表排列,該參數(shù)應(yīng)為質(zhì)數(shù)。
  
  (19)SERIALIZEABLE
  
  此參數(shù)用于保證重復(fù)讀的一致性。當(dāng)它設(shè)置為T(mén)RUE時(shí),查詢(xún)可保證表級(jí)讀一致,以防止在此查詢(xún)提交之前的修改。
  
  (20)SHARED_POOL_SIZE
  
  該參數(shù)指定共享池的大小,其中包括共享光標(biāo)及存儲(chǔ)過(guò)程。在多用戶(hù)系統(tǒng)中,較大的SHARED_POOL_SIZE值可改善SQL語(yǔ)句的執(zhí)行性能,但較小的值可節(jié)省內(nèi)存。
  
  (21)SMALL_TABLE_THRESHOLD
  
  該參數(shù)決定SGA中用于掃描的緩沖區(qū)的數(shù)目,若表的數(shù)目小于該值,則該表可整個(gè)地讀入高速緩存區(qū)。若表大于該值,則立即重用該緩沖區(qū)。一般用缺省值可使性能最好。
  
  (22)SORT_AREA_TETAINED_SIZE
  
  這是會(huì)話(huà)內(nèi)存的最大數(shù)量,用于內(nèi)存排序。當(dāng)從排序空間提出最后—行時(shí),便釋放該內(nèi)存。若排序要較大的內(nèi)存,則分配一臨時(shí)段,排序便可在盤(pán)上進(jìn)行。用于排序的最大總量可由SORT_AREA_SIZE指定,而不用此參數(shù)??梢苑峙渫瑯哟笮〉亩鄠€(gè)排序空間,不過(guò)一般對(duì)于復(fù)雜的查詢(xún)才需要。
  
  (23) SORT_AREA_SIZE
  
  該參數(shù)用于指定進(jìn)行外排序(磁盤(pán))時(shí)所需PGA內(nèi)存的最大數(shù)量,以字節(jié)為單位。當(dāng)排序行寫(xiě)入磁盤(pán)時(shí),該

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 越西县| 大埔区| 焦作市| 新田县| 沾化县| 静安区| SHOW| 绵阳市| 万盛区| 盐池县| 崇礼县| 丰宁| 敦煌市| 沙湾县| 全南县| 文登市| 万盛区| 横峰县| 苏州市| 鹿泉市| 曲水县| 老河口市| 新昌县| 安图县| 赤壁市| 辉南县| 卢湾区| 巴东县| 郴州市| 湛江市| 阿坝县| 竹北市| 南澳县| 黎川县| 平度市| 杭锦后旗| 锦州市| 文昌市| 景谷| 玉山县| 洪雅县|