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

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

Oracle學(xué)習(xí)應(yīng)用之徹底地優(yōu)化策略

2024-08-29 13:42:42
字體:
來(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)化,使之在滿足需求條件下,時(shí)空開(kāi)銷性能最佳外,還可在運(yùn)行階段,采取一些優(yōu)化措施,使系統(tǒng)性能最佳。本專題所討論的性能優(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)化
  
  ◆ 指定類型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)。本專題從以下幾個(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ù)按其作用可以分為兩大類,一大類是起限制作用的,如OPEN_CURSORS;另一大類是影響系統(tǒng)性能的,如DB_BLOCK_BUFFERS。
  
  在進(jìn)行數(shù)據(jù)庫(kù)系統(tǒng)性能優(yōu)化時(shí),需要熟練把握和了解一些可變參數(shù)。本文討論了一些對(duì)系統(tǒng)性能有較大影響的參數(shù)。
  
  限制類可變參數(shù)
  
  (1)DML_LOCKS
  
  該參數(shù)表明多少個(gè)用戶,可同時(shí)能修改多少?gòu)埍?。例如:有三個(gè)用戶同時(shí)修改二張表,則要求表上的總數(shù)為6。若置為0,則組織隊(duì)列不起作用,其性能會(huì)稍有提高。使用該參數(shù)時(shí)不能用DROP TABLE、CREATE INDEX或顯式封鎖。
  
  (2)LICENSE_MAX_session
  
  該參數(shù)指出答應(yīng)并發(fā)用戶會(huì)話的最大數(shù)。若此參數(shù)為0,則不能實(shí)施并發(fā)。若并發(fā)的用戶會(huì)話數(shù)已達(dá)到此極限,則只有具有RESTRICTED SESSION權(quán)限的用戶才能連接到服務(wù)器。
  
  (3)LICENSE_MAX_USERS
  
  該參數(shù)指出在一個(gè)數(shù)據(jù)庫(kù)上可建立的最大用戶數(shù)。當(dāng)達(dá)到最大值時(shí),便不能再建新用戶,可改變此值以放松限制。在LICENSE_MAX_SESSION或 LICENSE_MAX_USER為0時(shí),則并發(fā)會(huì)話或任何用戶都不能用。若對(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è)用戶進(jìn)程能同時(shí)打開(kāi)光標(biāo)的最大數(shù),它能限制每個(gè)用戶進(jìn)程占用的內(nèi)存空間量。
  
  (6)OPEN_LINKS
  
  該參數(shù)指定并發(fā)連接到遠(yuǎn)程數(shù)據(jù)庫(kù)的最大用戶進(jìn)程數(shù)。若同時(shí)引用多個(gè)數(shù)據(jù)庫(kù),則應(yīng)該增大該值。例如:同時(shí)交替訪問(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ù)器上的最大用戶進(jìn)程數(shù)。該參數(shù)值包括6個(gè)后臺(tái)進(jìn)程和一個(gè)登錄,因此,該參數(shù)值為20,則只能有13或14個(gè)并發(fā)用戶連接到服務(wù)器。
  
  (8)ROW_LOCKING
  
  該參數(shù)指定行封鎖方式。若設(shè)置為“ALWAYS”,則在修改表時(shí)只實(shí)施行封鎖。若設(shè)置為“INTENT”時(shí),則行封鎖只適用于SELECT FOR UPDATE,而在修改時(shí)實(shí)施表封鎖。
  
  影響系統(tǒng)性能類可變參數(shù)
  
  (1)CHECKPOINT_PROCESS
  
  該參數(shù)根據(jù)是否要求檢查點(diǎn)而設(shè)置成TRUE或者FALSE。當(dāng)所有緩沖區(qū)的信息寫(xiě)到磁盤時(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ù)為TRUE時(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/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ù)的最大值。
  
 ?。?)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ù)類型的性能。 當(dāng)設(shè)置為TRUE時(shí),可改善某些類型的事務(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)。
  
 ?。?2)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ù)制閂鎖之后,用戶進(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è)置為TRUE時(shí),查詢可保證表級(jí)讀一致,以防止在此查詢提交之前的修改。
  
  (20)SHARED_POOL_SIZE
  
  該參數(shù)指定共享池的大小,其中包括共享光標(biāo)及存儲(chǔ)過(guò)程。在多用戶系統(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ì)話內(nèi)存的最大數(shù)量,用于內(nèi)存排序。當(dāng)從排序空間提出最后—行時(shí),便釋放該內(nèi)存。若排序要較大的內(nèi)存,則分配一臨時(shí)段,排序便可在盤上進(jìn)行。用于排序的最大總量可由SORT_AREA_SIZE指定,而不用此參數(shù)??梢苑峙渫瑯哟笮〉亩鄠€(gè)排序空間,不過(guò)一般對(duì)于復(fù)雜的查詢才需要。
  
  (23) SORT_AREA_SIZE
  
  該參數(shù)用于指定進(jìn)行外排序(磁盤)時(shí)所需PGA內(nèi)存的最大數(shù)量,以字節(jié)為單位。當(dāng)排序行寫(xiě)入磁盤時(shí),該內(nèi)存被釋放。增大該參數(shù)的值,可改進(jìn)排序效率。一般不調(diào)整該參數(shù),除非排序量很大時(shí)才調(diào)整。
  
  (24) SORT_SPACEMP_SIZE
  
  該參數(shù)僅在排序量很大時(shí)才調(diào)整該參數(shù)??捎孟率皆O(shè)置該參數(shù),使排序能最佳地使用盤空間:
  
  [(total_sort_bytes)/(SORT_AREA_SIZE)]十64
  
  其中,total_sort_bytes為:
  
  (number_of_records)*[sum_of_aver_average_column_sizes+(12*number of(al)]
  
  (25)SQLTRACE
  
  該參數(shù)設(shè)置為TRUE時(shí),便可跟蹤,以獲得改善性能的信息。因?yàn)楦檿?huì)增加開(kāi)銷,所以一般僅在收集信息時(shí)才置為TRUE。在實(shí)際使用時(shí),可用ALTER SESSION命令覆蓋它。
  
  (26)TRANSACTION
  
  該參數(shù)設(shè)置并發(fā)事務(wù)的最大數(shù)。若此值較大,則需增加SGA空間和分配的回滾段數(shù)量。缺省值大于PROCESS時(shí),可答應(yīng)遞歸事務(wù)。
 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 万全县| 孟津县| 怀化市| 南皮县| 乾安县| 麻栗坡县| 枝江市| 宜章县| 运城市| 志丹县| 盐亭县| 浙江省| 洪泽县| 龙州县| 铜鼓县| 盈江县| 广德县| 保山市| 丘北县| 汾阳市| 荣成市| 保定市| 泰宁县| 长沙市| 弥渡县| 团风县| 丽水市| 新宁县| 南阳市| 永年县| 固始县| 南岸区| 二连浩特市| 无为县| 桑植县| 娄烦县| 波密县| 德州市| 昭苏县| 恩平市| 平武县|