資源描述:
《oracle與sql_server的比較》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第40頁1.SQL與ORACLE的內(nèi)存分配ORACLE的內(nèi)存分配大部分是由INIT.ORA來決定的,一個數(shù)據(jù)庫實例可以有N種分配方案,不同的應(yīng)用(OLTP、OLAP)它的配置是有側(cè)重的。SQL概括起來說,只有兩種內(nèi)存分配方式:動態(tài)內(nèi)存分配與靜態(tài)內(nèi)存分配,動態(tài)內(nèi)存分配充許SQL自己調(diào)整需要的內(nèi)存,靜態(tài)內(nèi)存分配限制了SQL對內(nèi)存的使用。1.002、SQL與ORACLE的物理結(jié)構(gòu)總得講,它們的物理結(jié)構(gòu)很相似,SQL的數(shù)據(jù)庫相當于ORACLE的模式(方案),SQL的文件組相當于ORACLE的表空間,作用都是均衡DISKI/O,SQL創(chuàng)建表時,可以指定表在
2、不同的文件組,ORACLE則可以指定不同的表空間。CREATETABLEA001(IDDECIMAL(8,0))ON[文件組]--------------------------------------------------------------------------------------------CREATETABLEA001(IDNUMBER(8,0))TABLESPACE表空間注:以后所有示例,先SQL,后ORACLE2.003、SQL與ORACLE的日志模式SQL對日志的控制有三種恢復(fù)模型:SIMPLE、FULL、BULK-LO
3、GGED;ORACLE對日志的控制有二種模式:NOARCHIVELOG、ARCHIVELOG。SQL的SIMPLE相當于ORACLE的NOARCHIVELOG,F(xiàn)ULL相當于ARCHIVELOG,BULK-LOGGED相當于ORACLE大批量數(shù)據(jù)裝載時的NOLOGGING。經(jīng)常有網(wǎng)友抱怨SQL的日志龐大無比且沒法處理,最簡單的辦法就是先切換到SIMPLE模式,收縮數(shù)據(jù)庫后再切換到FULL,記住切換到FULL之后要馬上做完全備份。3.004、SQL與ORACLE的備份類型SQL的備份類型分的極雜:完全備份、增量備份、日志備份、文件或文件組備份;OR
4、ACLE的備份類型就清淅多啦:物理備份、邏輯備份;ORACLE的邏輯備份(EXP)相當于SQL的完全備份與增量備份,ORACLE的物理備份相當于SQL的文件與文件組備份。SQL的各種備份都密切相關(guān),以完全備份為基礎(chǔ),配合其它的備份方式,就可以靈活地備分數(shù)據(jù);ORACLE的物理備份與邏輯備份各司其職。SQL可以有多個日志,相當于ORACLE日志組,ORACLE的日志自動切換并歸檔,SQL的日志不停地膨脹……SQL有附加數(shù)據(jù)庫,可以將數(shù)據(jù)庫很方便地移到別一個服務(wù)器,ORACLE有可傳輸表空間,可操作性就得注意啦。不足之處,敬請指正xzhui@vip.
5、sina.comQQ77056803第40頁1.005、SQL與ORACLE的恢復(fù)類型SQL有完全恢復(fù)與基于時間點的不完全恢復(fù);ORACLE有完全恢復(fù)與不完全恢復(fù),不完全恢復(fù)有三種方式:基于取消的、基于時間的、基于修改的(SCN)的恢復(fù)。不完全恢復(fù)可以恢復(fù)數(shù)據(jù)到某個穩(wěn)定的狀態(tài)點。2.006、SQL與ORACLE的事務(wù)隔離SETTRANSACTIONISOLATIONLEVELSQL有四種事務(wù)隔離級別:READCOMMITTED、READUNCOMMITTED、REPEATABLEREAD、SERIALIZABLEORACLE有兩種事務(wù)隔離級別RE
6、ADCOMMITTED、SERIALIZABLESQL雖然有四種事務(wù)隔離,事務(wù)之間還是經(jīng)常發(fā)生阻塞;ORACLE則利用回退段很好地實現(xiàn)了事務(wù)隔離,不會產(chǎn)生阻塞。SQL與ORACLE如果發(fā)生死鎖,都可以很快地識別并將之處理掉。3.007SQL與ORACLE的外鍵約束SQL的外鍵約束可以實現(xiàn)級聯(lián)刪除與級聯(lián)更新,ORACLE則只充許級聯(lián)刪除。CREATETABLEA001(IDINTPRIMARYKEY,NAMEVARCHAR(20))CREATETABLEA002(IDINTREFERENCESA001(ID)ONDELETECASCADEONUPD
7、ATECASCADE,AGETINYINT)CREATETABLEA001(IDINTPRIMAYKEY,NAMEVARCHAR2(20))CREATETABLEA002(IDINTREFERENCESA001(ID)ONDELETECASCADE,AGENUMBER(2,0))4.008、SQL與ORACLE的臨時表SQL的臨時表用#或##開頭,使用完后自動釋放,ORACLE的臨時表則存在數(shù)據(jù)庫中,每個會話的數(shù)據(jù)都互不干涉。oracle臨時表中的紀錄可以被定義為自動刪除(分commit方式和transaction方式),而表結(jié)構(gòu)不會被自動刪除。
8、臨時表的DML,DDL操作和標準表一樣。CREATETABLE#TEMP(IDINT,NAMEVARCHAR(20))---------