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

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

保"庫(kù)"之路:Oracle數(shù)據(jù)庫(kù)性能保護(hù)

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

oracle數(shù)據(jù)庫(kù)以其高可靠性、安全性、可兼容性,得到越來(lái)越多的企業(yè)的青睞。如何使oracle數(shù)據(jù)庫(kù)保持優(yōu)良性能,這是許多數(shù)據(jù)庫(kù)管理員關(guān)心的問(wèn)題,根據(jù)筆者經(jīng)驗(yàn)建議不妨針對(duì)以下幾個(gè)方面加以考慮。

一、分區(qū)

根據(jù)實(shí)際經(jīng)驗(yàn),在一個(gè)大數(shù)據(jù)庫(kù)中,數(shù)據(jù)空間的絕大多數(shù)是被少量的表所占有。為了簡(jiǎn)化大型數(shù)據(jù)庫(kù)的管理,改善應(yīng)用的查詢性能,一般可以使用分區(qū)這種手段。所謂分區(qū)就是動(dòng)態(tài)表中的記錄分離到若干不同的表空間上,使數(shù)據(jù)在物理上被分割開(kāi)來(lái),便于維護(hù)、備份、恢復(fù)、事務(wù)及查詢性能。當(dāng)使用的時(shí)候可建立一個(gè)連接所有分區(qū)的視圖,使其在邏輯上仍以一個(gè)整體出現(xiàn)。

1.建立分區(qū)表

create table employee(

empno varchar2(10) primary key,

name varchar2(30),

deptno number(2)



partition by range(deptno)

(partition part1 values less than (11)

tablespace part1_ts,

partition part2 values less than(21)

tablespace part2_ts,

partition part3 valuse less than(31)

tablespace part3_ts

partition part4 values less than(maxvalue)

tablespace part4_ts

);

表employee依據(jù)deptno列進(jìn)行分區(qū)。

2.分區(qū)索引

create index employee_deptno on employee (deptno)local(

partition part1 tablespace part1_ndx_ts,

partition part2 tablespace part2_ndx_ts,

partition part3 tablespace part3_ndx_ts,

partition part4 tablespace part4_ndx_ts,

);

當(dāng)分區(qū)中出現(xiàn)許多事務(wù)并且要保證所有分區(qū)中的數(shù)據(jù)記錄的惟一性時(shí)采用全局索引,在建立全局索引時(shí),global子句允許指定索引的范圍值,這個(gè)范圍值可以不同于表分區(qū)的范圍值。只有建立局部索引才會(huì)使索引分區(qū)與表分區(qū)間建立起一一對(duì)應(yīng)關(guān)系。因此,在大多數(shù)情況下,應(yīng)該使用局部索引分區(qū)。若使用了此索引,分區(qū)就能夠很容易地將索引分區(qū)與表分區(qū)建立關(guān)聯(lián),局部索引比全局索引更易于管理。

3.分區(qū)管理

根據(jù)實(shí)際需要,還可以使用alter table命令來(lái)增加、刪除、交換、移動(dòng)、修改、重命名、劃分、截短一個(gè)已存在分區(qū)的結(jié)構(gòu)。

二、重建索引

如果表中記錄頻繁地被刪除或插入,盡管表中的記錄總量保持不變,索引空間的使用量會(huì)不斷增加。雖然記錄從索引中被刪除,但是該記錄索引項(xiàng)的使用空間不能被重新使用。因此,如果表變化不定,索引空間量會(huì)不斷增加,不論表中記錄數(shù)量是否增加,只是因?yàn)樗饕袩o(wú)效空間會(huì)增加。

要回收那些曾被刪除記錄使用的空間,需要使用alter index rebuild命令。可以做一個(gè)定期運(yùn)行的批處理程序,來(lái)重建最活動(dòng)表的索引。這個(gè)批處理程序可以在空閑時(shí)運(yùn)行,以避免該程序與其他應(yīng)用程序沖突。若能堅(jiān)持索引的這一程序規(guī)劃,便可以及時(shí)回收那些未使用空間,提高空間利用率。

三、段的碎片整理

當(dāng)生成一個(gè)數(shù)據(jù)庫(kù)對(duì)象時(shí)(一個(gè)表或一個(gè)索引),通過(guò)用戶缺省值或指定值來(lái)為它指定表空間。一個(gè)在表空間中生成的段,用于存儲(chǔ)對(duì)象的相關(guān)數(shù)據(jù)。在段被關(guān)閉、收縮、截?cái)嘀埃嗡峙涞目臻g將不被釋放。

一個(gè)段是由范圍組成,而范圍是由相鄰的oracle塊組成。一旦存在的范圍不能再存儲(chǔ)新的數(shù)據(jù),這個(gè)段就會(huì)去獲得新的范圍,但并不要求這些范圍是彼此相鄰的。這樣的擴(kuò)展會(huì)一直繼續(xù)下去,直到表空間中的數(shù)據(jù)文件不能提供更多的自由空間,或者范圍數(shù)量已達(dá)到極限。

因此,一個(gè)碎片太多的數(shù)據(jù)段,不僅會(huì)影響運(yùn)行,也會(huì)引發(fā)表空間中的空間管理問(wèn)題。所以,每個(gè)數(shù)據(jù)段只含有一個(gè)范圍是十分有益的。借助監(jiān)控系統(tǒng),可以通過(guò)檢查dba_segments數(shù)據(jù)字典視圖來(lái)了解哪些數(shù)據(jù)庫(kù)對(duì)象含有10個(gè)或更多范圍的段,確定其數(shù)據(jù)段碎片。

若一個(gè)段的碎片過(guò)多,可用兩種方法解決:

1. 用正確的存儲(chǔ)參數(shù)建立一個(gè)新表,將舊表的數(shù)據(jù)插入到新表中,在刪除舊表;

2. 利用export/import工具。

如:exp system/manager file=exp.dmpcompress=y grants=y indexes=y

tables=(t1,t2)

若輸出成功,進(jìn)入oracle,刪除上述表。

注:compress=y表示將在輸出過(guò)程中修改它們的存儲(chǔ)參數(shù)。

imp system/manager file=exp.dmp commit=y buffer=64000 full=y

四、自由范圍的碎片整理

表空間中的一個(gè)自由范圍是表空間中相連的自由(空間)塊的集合。當(dāng)一個(gè)段關(guān)閉時(shí),它的范圍將被釋放,并被標(biāo)記為自由范圍。然而,這些自由范圍再也不能與相鄰的自由范圍合并,它們之間的界線始終存在。但是當(dāng)表空間的缺省值pctincrease設(shè)置不是0時(shí),smon后臺(tái)進(jìn)程會(huì)定期將這些相鄰的自由范圍合作。若pctincrease設(shè)置為0,那么相鄰自由范圍不會(huì)被數(shù)據(jù)庫(kù)自動(dòng)合并。但可以使用alter table命令"coalesce"選項(xiàng),來(lái)強(qiáng)迫進(jìn)行相鄰自由范圍的合并。

不進(jìn)行自由范圍合并,在日后的空間請(qǐng)求中,會(huì)影響到表空間中的空間分配。當(dāng)需要一個(gè)足夠大的范圍時(shí),數(shù)據(jù)庫(kù)并不會(huì)合并相鄰的自由范圍,除非沒(méi)有其他選擇。這樣,當(dāng)表空間中前面較小的自由范圍已被使用時(shí),將使用表空間中后面部分最大的一個(gè)自由范圍。結(jié)果,會(huì)因?yàn)闆](méi)有足歡嗟氖褂每占洌傭賈鹵砜占湫棖蟮拿堋s捎謖庋那榭齔魷鄭故菘獾目占浞峙渚嗬硐朐嚼叢皆丁w雜煽占淥櫧;岢魷衷諛切┚9乇沼種匭律傻氖菘獗硨退饕小?

在理想的oracle表空間中,每一個(gè)數(shù)據(jù)庫(kù)對(duì)象存儲(chǔ)在一個(gè)單獨(dú)的范圍中,并且所有有效自由空間集中在一個(gè)巨大而連續(xù)的范圍中。這樣,在一個(gè)對(duì)象需要附加存儲(chǔ)空間時(shí),可以在增加獲取足夠大自由空間的可能性的同時(shí),最小化空間中的循環(huán)調(diào)用,提高自由空間使用率。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 隆回县| 威远县| 徐州市| 桂阳县| 北辰区| 建湖县| 万宁市| 温宿县| 疏附县| 汽车| 天气| 玉山县| 青川县| 达州市| 蒲江县| 沅江市| 东乡县| 格尔木市| 临桂县| 齐齐哈尔市| 孝义市| 眉山市| 建瓯市| 北碚区| 莫力| 额尔古纳市| 酒泉市| 唐海县| 五原县| 宁晋县| 曲松县| 会东县| 乐昌市| 舞阳县| 长兴县| 大关县| 临猗县| 霍山县| 福州市| 平阴县| 长宁区|