伊人99re_av日韩成人_91高潮精品免费porn_色狠狠色婷婷丁香五月_免费看的av_91亚色网站

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 數(shù)據(jù)庫 > Oracle體系結(jié)構(gòu)知識(shí)點(diǎn)總結(jié)

Oracle體系結(jié)構(gòu)知識(shí)點(diǎn)總結(jié)

2015-12-14 11:06:47 | 來源:中培企業(yè)IT培訓(xùn)網(wǎng)

體系結(jié)構(gòu):

數(shù)據(jù)庫的體系結(jié)構(gòu)是指數(shù)據(jù)庫的組成、工作過程與原理,以及數(shù)據(jù)在數(shù)據(jù)庫中的組織與管理機(jī)制。

體系結(jié)構(gòu)包括:實(shí)例(instence),數(shù)據(jù)庫文件(database),用戶進(jìn)程(user process

,服務(wù)器進(jìn)程(server process),以及其他文件(如參數(shù)文件(parameter file),密碼文件(password file),歸檔日志文件(archive log file)等)。

Oracle服務(wù)器由數(shù)據(jù)庫文件和數(shù)據(jù)庫實(shí)例組成。

其中數(shù)據(jù)庫實(shí)例包括SGA(即內(nèi)存結(jié)構(gòu)的集合)和管理數(shù)據(jù)庫的后臺(tái)進(jìn)程。

數(shù)據(jù)庫文件包括三種:數(shù)據(jù)文件(data files),控制文件(control files)和重做日志文件(redo log files)。 

Oracle中的個(gè)主要內(nèi)存區(qū)域是:

– 系統(tǒng)全局區(qū)域(system global areaSGA)--當(dāng)數(shù)據(jù)庫實(shí)例啟動(dòng)時(shí)會(huì)首先分配

– 程序全局區(qū)域(program global areaPGA

– 用戶全局區(qū)域(user global areaUGA

SGA內(nèi)存結(jié)構(gòu)包括: 共享池(Shared Pool),數(shù)據(jù)緩沖區(qū)(Database Buffer Cache),重做日志緩沖區(qū)(Redo Log Buffer Cache)。共享池的作用:共享池由庫緩存和數(shù)據(jù)字典緩存組成。緩存和共享SQLPL/SQL代碼;數(shù)據(jù)緩沖區(qū)的作用:存儲(chǔ)從數(shù)據(jù)文件中讀入的數(shù)據(jù),提高查詢速度;重做日志緩沖區(qū)的作用:變化前和變化后的數(shù)據(jù)在寫入數(shù)據(jù)緩沖區(qū)前都會(huì)先寫入重做日志緩沖區(qū),這樣在數(shù)據(jù)恢復(fù)時(shí),Oracle就知道哪些需要回滾。日志數(shù)據(jù)首先產(chǎn)生于重做日志緩沖區(qū),當(dāng)重做日志緩沖區(qū)的日志數(shù)據(jù)達(dá)到一定數(shù)量時(shí),由日志寫進(jìn)程LGWR將日志數(shù)據(jù)寫入重做日志文件中。

PGA是為單獨(dú)的服務(wù)器進(jìn)程存儲(chǔ)私有數(shù)據(jù)的內(nèi)存區(qū)域,只為各個(gè)服務(wù)器進(jìn)程提供一個(gè)PGAPGA只能由他們的服務(wù)器進(jìn)程訪問。

UGA是用于存儲(chǔ)會(huì)話狀態(tài)的內(nèi)存區(qū)域。UGA的位置依賴于服務(wù)器是運(yùn)行在共享服務(wù)器模式中,還是專用服務(wù)器模式中。在專用服務(wù)器模式中,UGA會(huì)在PGA中分配,只能夠由服務(wù)器進(jìn)程訪問。 

Oracle進(jìn)程主要有用戶進(jìn)程、服務(wù)器進(jìn)程和后臺(tái)進(jìn)程。

用戶進(jìn)程是一個(gè)需要與Oracle服務(wù)器進(jìn)行交互的程序。

服務(wù)器進(jìn)程猶如一個(gè)中介,完成用戶的各種數(shù)據(jù)服務(wù)請求,而把數(shù)據(jù)庫服務(wù)器返回的數(shù)據(jù)發(fā)給客戶端。

后臺(tái)進(jìn)程主要作用是協(xié)調(diào)好系統(tǒng)的性能。其主要包括進(jìn)程監(jiān)控進(jìn)程(PMON,服務(wù)器進(jìn)程的管理和維護(hù))、系統(tǒng)監(jiān)控進(jìn)程(SMON,在數(shù)據(jù)庫出現(xiàn)故障時(shí)進(jìn)行實(shí)例恢復(fù))、數(shù)據(jù)庫寫進(jìn)程(DBWR,主要負(fù)責(zé)將數(shù)據(jù)緩沖區(qū)內(nèi)的數(shù)據(jù)寫到數(shù)據(jù)文件)、重做日志寫進(jìn)程(LGWR,主要負(fù)責(zé)將重做日志緩沖區(qū)內(nèi)的數(shù)據(jù)寫到重做日志文件)及檢查點(diǎn)進(jìn)程(CKPT,其作用是保證所有修改過的數(shù)據(jù)庫緩沖區(qū)都被寫入數(shù)據(jù)庫文件)。以上5個(gè)進(jìn)程也是數(shù)據(jù)庫啟動(dòng)過程中必須啟動(dòng)的。 

數(shù)據(jù)庫啟動(dòng)和關(guān)閉

數(shù)據(jù)庫的啟動(dòng)3個(gè)狀態(tài):

1:NOMOUNT 只打開數(shù)據(jù)庫實(shí)例 

2:MOUNT 打開實(shí)例并讀取控制文件 

3:OPEN 打開數(shù)據(jù)庫

按123順序啟動(dòng)

數(shù)據(jù)庫的關(guān)閉3個(gè)狀態(tài):

1:CLOSE 關(guān)閉數(shù)據(jù)庫

2:DISMOUNT 

3:SHUTDOWN 關(guān)閉數(shù)據(jù)庫實(shí)例 

事務(wù)

事務(wù)的概念:事務(wù)是一組邏輯工作單元,它由一條或多條SQL語句組成。

事務(wù)的4個(gè)特性:原子性,一致性,隔離性和持久性

事務(wù)控制:commit,rollback 

SQL語言

SQL語言分為數(shù)據(jù)定義語言(DDL)、數(shù)據(jù)操縱語言(DML)和數(shù)據(jù)控制語言(DCL)。

DDL用于定義SQL模式、基本表、視圖和索引的創(chuàng)建和撤消操作。常用命令有:CREATE、ALTER、DROP。

DML用于數(shù)據(jù)的插入、修改、刪除和查詢。常用命令有:INSERT、UPDATE、DELETE、SELECT。

DCL用于對基本表的授權(quán)、完整性規(guī)則的描述和事務(wù)的控制等。常用的命令有:GRANT、REVOKE、COMMIT、SAVEPOINT、ROLLBACK。 

har和varchar2兩種數(shù)據(jù)類型的區(qū)別:

在數(shù)據(jù)庫中char(n)表示固定長度n的字符串,當(dāng)實(shí)際數(shù)據(jù)不足定義長度時(shí),將使用空格補(bǔ)全右邊不足位,當(dāng)實(shí)際數(shù)據(jù)的長度大于其固定長度時(shí),Oracle將不允許數(shù)據(jù)存儲(chǔ)于對應(yīng)列或者變量中,并拋出異常;

而varchar2(n)是可變長的字符串,意味著該列或變量的最大長度不大于n,但當(dāng)實(shí)際數(shù)據(jù)小于n時(shí),并不在其右端補(bǔ)齊空格。

delete和truncate的區(qū)別。

elete是DML語句,在刪除數(shù)據(jù)時(shí)要記錄重做信息,且刪除數(shù)據(jù)后不釋放表空間,速度慢。runcate是數(shù)據(jù)定義語言,執(zhí)行后數(shù)據(jù)直接刪除且釋放表空間,不記錄日志信息,速度快。 

PL/SQL語言

PL/SQL語言的敘述:

PL/SQL是一種塊結(jié)構(gòu)的語言,它將一組語句放在一個(gè)塊中。構(gòu)成PL/SQL程序的基本單元是邏輯塊(如過程、函數(shù)或匿名塊),每個(gè)邏輯塊對應(yīng)要解決的問題或子問題。PL/SQL塊共分為3個(gè)部分,分別為聲明部分、可執(zhí)行部分和異常處理部分。

屬性數(shù)據(jù)類型包括兩種,分別是%TYPE和%ROWTYPE。

1、%TYPE將某種數(shù)據(jù)類型的變量或列提供給其他變量。

其語法格式為:var1 table_name.column_name%TYPE;其中聲明了變量var1,它的數(shù)據(jù)類型與table_name表中的column_name字段的數(shù)據(jù)類型相同。

2、%ROWTYPE提供一種表示表中的某行的記錄類型。

其語法格式為:var1 table_name%ROWTYPE;其中聲明了變量var1,可以用來存儲(chǔ)從table_name表中提取的一個(gè)記錄。

過程、函數(shù)、程序包

過程和函數(shù)的區(qū)別:過程沒返回值,而函數(shù)有返回值。

程序包是對相關(guān)過程、函數(shù)、變量、游標(biāo)和異常等對象的封裝。

程序包由規(guī)范和主體兩部分組成。規(guī)范可以在沒有程序包主體的情況下存在,主體不能在沒有程序包規(guī)格說明的情況下存在。 

游標(biāo)和觸發(fā)器

游標(biāo)的4種屬性:%sopen 、%found、%notfound、%rowcount。

使用游標(biāo)的個(gè)步驟:定義游標(biāo)(declare)、打開游標(biāo)(open)、循環(huán)取數(shù)據(jù)(fetch)、關(guān)閉游標(biāo)(close)。

顯式游標(biāo)和隱式游標(biāo)在使用過程中的區(qū)別:顯示游標(biāo)使用時(shí)要定義、隱式游標(biāo)不需要定義,在上下文中的dml語句默認(rèn)使用隱式游標(biāo)。

觸發(fā)器定義:觸發(fā)器是當(dāng)特定事件出現(xiàn)時(shí)自動(dòng)執(zhí)行的代碼塊。

觸發(fā)器與過程的區(qū)別:過程是由用戶或應(yīng)用程序甚至是觸發(fā)器顯式調(diào)用的,而觸發(fā)器是由Oracle根據(jù)發(fā)生的事件而隱式激活的,它不能被直接調(diào)用執(zhí)行。

觸發(fā)器的類型及其運(yùn)行時(shí)機(jī):

Oracle觸發(fā)器分為DML觸發(fā)器、模式(DDL或用戶事件)觸發(fā)器和數(shù)據(jù)庫級(jí)觸發(fā)器。

1:DML觸發(fā)器:當(dāng)DML語句在表中發(fā)生時(shí)執(zhí)行。DML語句包括以下3種類型:

a.語句級(jí)觸發(fā)器:無論受觸發(fā)語句影響的行數(shù)是多少,都只激活一次。

b.行級(jí)觸發(fā)器:每當(dāng)觸發(fā)器語句影響表時(shí)就會(huì)激活行級(jí)觸發(fā)器,行級(jí)觸發(fā)器在被修改的每一行上執(zhí)行一次。

c.INSTEAD OF觸發(fā)器:允許用戶修改不能使用DML語句修改的視圖。INSTEAD OF觸發(fā)器只可用于視圖,不可用于表。

2:模式(DDL或用戶事件)觸發(fā)器:在數(shù)據(jù)庫模式中執(zhí)行DDL語句時(shí)激活。

3:數(shù)據(jù)庫(系統(tǒng)事件)觸發(fā)器:在發(fā)生LOGOFF(退出)、LOGON(登錄)、STARTUP(打開)、SHUTDOWN(關(guān)閉)數(shù)據(jù)庫和SERVERERROR(生成錯(cuò)誤消息)等系統(tǒng)事件時(shí)執(zhí)行。

數(shù)據(jù)庫對象(同義詞,序列,視圖,索引) 

同義詞的定義:是現(xiàn)有對象的一個(gè)別名。

同義詞的作用:

1:簡化SQL語句。:隱藏對象的名稱和所有者。:提供對對象的公共訪問。

同義詞的兩種類型:

1:公有同義詞。CREATE public synonym emp_syn FOR SCOTT.emp;

2:私有同義詞。CREATE synonym emp FOR SCOTT.emp;

公有的同義詞只能建立在超級(jí)用戶下定義。

序列是用來生成唯一、連續(xù)的整數(shù)的數(shù)據(jù)庫對象。

在表中使用序列:

1.創(chuàng)建序列:

CREATE SEQUENCE sequence_name [START WITH startnum [INCREMENT BY step];

2.創(chuàng)建表時(shí)使用序列:

CREATE TABLE table_name  uid smallint not null, ...);

3.插入數(shù)據(jù)時(shí)使用序列:

INSERT INTO table_name VALUES(sequence_name.NEXTVAL, ...);

視圖是從若干基本表和(或)其他視圖構(gòu)造出來的表。

視圖和表的區(qū)別是:創(chuàng)建一個(gè)視圖時(shí),只是把其視圖的定義存放在數(shù)據(jù)字典中,而不存儲(chǔ)視圖對應(yīng)的數(shù)據(jù),而表會(huì)存儲(chǔ)對應(yīng)的數(shù)據(jù)。

視圖的目的和作用:篩選表中數(shù)據(jù),簡化查詢語句,對表起到保護(hù)作用。

注:加WITH READ ONLY 選項(xiàng)可使視圖不允許DML操作  

用戶管理和權(quán)限管理

要在超級(jí)用戶上創(chuàng)建用戶權(quán)限

--創(chuàng)建用戶

create user zw identified by 123456;

--給zw登入的權(quán)限

grant connect to zw;

--授權(quán)

--用系統(tǒng)權(quán)限的方式

grant create table to zw;

--用角色方式

grant resource to zw;

--例:

create user username identified by password;

grant resource,connect to username;

-----------------GRANT語句

--GRANT語句的作用是賦與用戶權(quán)限。

--常用的數(shù)據(jù)對象權(quán)限有以下六個(gè):

--(1)ALL ON  數(shù)據(jù)對象名

--(2)SELECT ON  數(shù)據(jù)對象名

--(3)UPDATE  ON  數(shù)據(jù)對象名

--(4)DELETE  ON  數(shù)據(jù)對象名

--(5)INSERT  ON   數(shù)據(jù)對象名

--(6)ALTER  ON  數(shù)據(jù)對象名

--例:

--把查詢department表權(quán)限給zw用戶

grant select on department to zw

--把所有操作department表權(quán)限給zw用戶

grant all on department to zw 

----------------REVOKE語句

--REVOKE語句是回收權(quán)限語句。回收以上所賦權(quán)限的相應(yīng)語句為:

--REVOKE CONNECT FROM USER1;

--REVOKE SELECT ON TABLE2 FROM USER2;

--REVOKE SELECT,INSERT,DELETE ON TABLE3 FROM USER1,USER2;

--例:

--回收sun用戶對SZD用戶的emp表的查詢權(quán)限

revoke select on emp from sun

--回收sun用戶對SZD用戶的emp表的所有權(quán)限

revoke all on emp from sun

備份與恢復(fù)

數(shù)據(jù)庫導(dǎo)出的四種模式full(全庫導(dǎo)出), owner(用戶導(dǎo)出), table(表導(dǎo)出), tablespace(表空間導(dǎo)出

執(zhí)行exp 有三種方法交互式命令行和參數(shù)文件。

1:交互式直接輸入exp 命令用戶可以按照exp 提示的信息一步一步操作比較簡單. 

2:命令行輸入命令行exp username/password parameter=value. 

3:參數(shù)文件輸入命令行exp username/password parfile=filename exp 所需的參數(shù)從參數(shù)文件引入。

熱備份和冷備份:

熱備份針對歸檔模式的數(shù)據(jù)庫,在數(shù)據(jù)庫仍舊處于工作狀態(tài)時(shí)進(jìn)行備份。而冷備份指在數(shù)據(jù)庫關(guān)閉后,進(jìn)行備份,適用于所有模式的數(shù)據(jù)庫。

熱備份的優(yōu)點(diǎn)在于當(dāng)備份時(shí),數(shù)據(jù)庫仍舊可以被使用并且可以將數(shù)據(jù)庫恢復(fù)到任意一個(gè)時(shí)間點(diǎn)。冷備份的優(yōu)點(diǎn)在于它的備份和恢復(fù)操作相當(dāng)簡單,并且由于冷備份的數(shù)據(jù)庫可以工作在非歸檔模式下,數(shù)據(jù)庫性能會(huì)比歸檔模式稍好。(因?yàn)椴槐貙rchive log寫入硬盤)

索引

索引是一種樹狀結(jié)構(gòu),可以通過該結(jié)構(gòu)迅速訪問表中的數(shù)據(jù)。 

索引的類型和其語法:唯一索引,組合索引,反向鍵索引,位圖索引,基于函數(shù)的索引。

1、唯一索引可以確保在定義索引的列中,表的任意兩行的值都不相同,Oracle自動(dòng)為表的主鍵列創(chuàng)建唯一索引。

其語法為:CREATE UNIQUE INDEX index_name ON table_name(column_name);

2、組合索引是在表中的多個(gè)列上創(chuàng)建的索引,可以提高檢索數(shù)據(jù)的速度。

其語法為:CREATE INDEX index_name ON table_name(column_name);

3、反向鍵索引通常建立在一些值連續(xù)增長的列上,可以提高讀取的性能。

其語法為:CREATE INDEX index_name ON table_name(column_name) REVERSE;

4、位圖索引適用于低基數(shù)列,也就是不同值的數(shù)目比表的行數(shù)少的列。

其語法為:CREATE BITMAP INDEX index_name ON table_name(column_name);

5、基于函數(shù)的索引是指基于一個(gè)或多個(gè)列上的函數(shù)或表達(dá)式創(chuàng)建的索引,便于WHERE子句中包含函數(shù)或表達(dá)式以計(jì)算查詢時(shí)使用。

其語法為:CREATE INDEX index_name ON table_name(表達(dá)式或函數(shù));

racle索引包含B-tree索引、bitmap索引、函數(shù)索引等。

B-tree索引類似二叉樹結(jié)構(gòu),數(shù)據(jù)庫表中每一行都對應(yīng)R-tree索引中的一個(gè)節(jié)點(diǎn)。

節(jié)點(diǎn)中包含數(shù)據(jù)(索引列)和rowid信息,通過索引列找到對應(yīng)的rowid信息,在定位到具體的行來查找數(shù)據(jù)。

如果平凡刪除操作,會(huì)對相應(yīng)的索引作對應(yīng)的修改,會(huì)降低性能。建議在操作之前先刪除索引再重建索引。 

補(bǔ)充:

創(chuàng)建索引語法:create index index_name on itemfile (itemcode)

刪除索引語法:drop index index_name;

重建索引語法:alter index index_name rebuild;

重命名索引:alter index item_index rename to book_index; 

索引的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):某些情況下,數(shù)據(jù)查找快。

如:用戶的查詢將要選取記錄的2%-5%或更多,那么它將會(huì)執(zhí)行全部掃描,而不考慮索引是否可用

缺點(diǎn):

a)在某些條件下,全表掃描比索引查找更快

b)索引占用空間驚人,甚至超過表數(shù)據(jù)所占空間,不利于管理。

c)創(chuàng)建索引后,會(huì)降低插入,修改,刪除等操作的效率

選擇索引

a.身份證這類唯一屬性,應(yīng)建唯一索引 

b.性別,只有男、女、未定等少數(shù)幾種狀態(tài)值,應(yīng)創(chuàng)建位圖索引,位圖索引更節(jié)約空間

c.對字段使用函數(shù),不會(huì)使用索引,可創(chuàng)建函數(shù)索引。

下列的表不適合建索引:

a.表很小(8K)

b.列不經(jīng)常在WHERE子句中使用

c.表中的相關(guān)列經(jīng)常被修改 

Oracle優(yōu)化

SQL優(yōu)化實(shí)例:

– 選擇最有效率的表名順序(只在基于規(guī)則的優(yōu)化器中有效)

– WHERE子句中的連接順序

– SELECT子句中避免使用 *

– 減少訪問數(shù)據(jù)庫的次數(shù)

– 最高效的刪除重復(fù)記錄方法 

– 用TRUNCATE替代DELETE 

– 盡量多使用COMMIT

– 用Where子句替換HAVING子句 

– 使用表的別名(Alias)

– 用EXISTS替代IN 

– 用NOT EXISTS替代NOT IN 
用表連接替換EXISTS

– 用EXPLAIN PLAN 分析SQL語句

– 避免在索引列上使用計(jì)算

– 用>=替代>

– 避免在索引列上使用IS NULL和IS NOT NULL

– 用UNION-ALL 替換UNION ( 如果有可能的話)

– 需要當(dāng)心的WHERE子句

標(biāo)簽: Oracle
主站蜘蛛池模板: 成年人网址在线观看 | 国产中文字幕在线观看 | 久久久久久久久久久久影院 | 午夜AV免费播放不卡三区 | 无码专区亚洲制服丝袜 | 欧美一级xxx | 日韩在线播放第一页 | 最近免费观看高清日本大全 | 少妇愉情理伦片丰满丰满 | av热久久 | 在线观看日韩欧美 | 亚洲欧美影视 | 色老板视频线观看在线 | 一本无码AV中文出轨人妻 | 日韩欧美精品一区二区三区经典 | 女人本色免费观看 | 亚洲大片 | 春色校园亚洲愉拍自拍 | 亚洲一区综合 | 四虎影院在线观看av | 日韩精品久久 | 日韩精品免费在线播放 | 无码熟熟妇丰满人妻啪啪软件 | 免费一级特黄毛片 | 欧美丰满熟妇xxxxx | 城中村快餐嫖老妇对白 | 国产欧美日韩视频一区二区三区 | 国产欧美精品aaaaa久久 | 欧美午夜影院 | 日韩中文字幕成人免费视频 | 做视频免费观看网站 | 国产欧美精品久久 | 日本高清免费观看 | 日本xxxx色视频在线观看免费不卡 | nxgx100%日本老师 | 99视频一区 | 亚洲一区二区三区精品在线 | 视频精品国内 | 亚洲狠狠入 | 亚洲AV永久无码天堂影院 | 亚洲色婷婷五月色晴天图片 |