資源描述:
《瘋狂SQL之魔獸爭霸》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第35頁瘋狂SQL之魔獸爭霸本人平時比較沉默,但朋友們都說我很瘋狂—瘋狂地學(xué)習(xí)、瘋狂地工作。很久就有寫點東西的打算啦,一直懶于打字,近來稍有空閑,決定杜撰此文,獻(xiàn)給現(xiàn)些喜歡或不喜歡沉默的朋友。----自序網(wǎng)上已經(jīng)有很多SQL與ORACLE的對比,但本人要講的即不是單純的SQL,也不是單純的ORACLE,更不是評價誰好誰壞(意思不大),而是兩種數(shù)據(jù)庫之相同和異同,本人曾講授過SQL與ORACLE的課程,講SQL時說SQL好,講ORACLE時又說ORACLE棒,現(xiàn)在終于可以平心而評啦。估計有人現(xiàn)在會嘿嘿冷笑(又一個誤人子
2、弟的騙子),老實說,當(dāng)初每次講完課,就有這種感覺—教的人不得其法,學(xué)的人不得其道。說點嚴(yán)肅的事吧,據(jù)說比爾與艾里森在洗手間相遇,兩個又是擁抱,又是KISS,不多久就吵了起來,比爾對查詢分析器(SQLQUERYANALYZE)贊不經(jīng)絕口,艾里森嘿嘿冷笑,只說了一句話—SQLPLUS內(nèi)秀。言歸正傳,且聽我一一道來001、SQL與ORACLE的內(nèi)存分配ORACLE的內(nèi)存分配大部分是由INIT.ORA來決定的,一個數(shù)據(jù)庫實例可以有N種分配方案,不同的應(yīng)用(OLTP、OLAP)它的配置是有側(cè)重的。SQL概括起來說,只有兩種內(nèi)存
3、分配方式:動態(tài)內(nèi)存分配與靜態(tài)內(nèi)存分配,動態(tài)內(nèi)存分配充許SQL自己調(diào)整需要的內(nèi)存,靜態(tài)內(nèi)存分配限制了SQL對內(nèi)存的使用。002、SQL與ORACLE的物理結(jié)構(gòu)總得講,它們的物理結(jié)構(gòu)很相似,SQL的數(shù)據(jù)庫相當(dāng)于ORACLE的模式(方案),SQL的文件組相當(dāng)于ORACLE的表空間,作用都是均衡DISKI/O,SQL創(chuàng)建表時,可以指定表在不同的文件組,ORACLE則可以指定不同的表空間。CREATETABLEA001(IDDECIMAL(8,0))ON[文件組]--------------------------------
4、------------------------------------------------------------CREATETABLEA001(IDNUMBER(8,0))TABLESPACE表空間注:以后所有示例,先SQL,后ORACLE003、SQL與ORACLE的日志模式SQL對日志的控制有三種恢復(fù)模型:SIMPLE、FULL、BULK-LOGGED;ORACLE對日志的控制有二種模式:NOARCHIVELOG、ARCHIVELOG。SQL的SIMPLE相當(dāng)于ORACLE的NOARCHIVELOG,F(xiàn)U
5、LL相當(dāng)于ARCHIVELOG,BULK-LOGGED相當(dāng)于ORACLE大批量數(shù)據(jù)裝載時的NOLOGGING。經(jīng)常有網(wǎng)友抱怨SQL的日志龐大無比且沒法處理,最簡單的辦法就是先切換到SIMPLE模式,收縮數(shù)據(jù)庫后再切換到FULL,記住切換到FULL之后要馬上做完全備份。004、SQL與ORACLE的備份類型SQL的備份類型分的極雜:完全備份、增量備份、日志備份、文件或文件組備份;ORACLE的備份類型就清淅多啦:物理備份、邏輯備份;ORACLE的邏輯備份(EXP)相當(dāng)于SQL的完全備份與增量備份,ORACLE的物理備份
6、相當(dāng)于SQL的文件與文件組備份。SQL的各種備份都密切相關(guān),以完全備份為基礎(chǔ),配合其它的備份方式,就可以靈活地備分?jǐn)?shù)據(jù);ORACLE的物理備份與邏輯備份各司其職。SQL可以有多個日志,相當(dāng)于ORACLE日志組,ORACLE的日志自動切換并歸檔,SQL的日志不停地膨脹……不足之處,敬請指正xzhui@vip.sina.comQQ77056803第35頁SQL有附加數(shù)據(jù)庫,可以將數(shù)據(jù)庫很方便地移到別一個服務(wù)器,ORACLE有可傳輸表空間,可操作性就得注意啦。005、SQL與ORACLE的恢復(fù)類型SQL有完全恢復(fù)與基于時間
7、點的不完全恢復(fù);ORACLE有完全恢復(fù)與不完全恢復(fù),不完全恢復(fù)有三種方式:基于取消的、基于時間的、基于修改的(SCN)的恢復(fù)。不完全恢復(fù)可以恢復(fù)數(shù)據(jù)到某個穩(wěn)定的狀態(tài)點。006、SQL與ORACLE的事務(wù)隔離SETTRANSACTIONISOLATIONLEVELSQL有四種事務(wù)隔離級別:READCOMMITTED、READUNCOMMITTED、REPEATABLEREAD、SERIALIZABLEORACLE有兩種事務(wù)隔離級別READCOMMITTED、SERIALIZABLESQL雖然有四種事務(wù)隔離,事務(wù)之間還是
8、經(jīng)常發(fā)生阻塞;ORACLE則利用回退段很好地實現(xiàn)了事務(wù)隔離,不會產(chǎn)生阻塞。SQL與ORACLE如果發(fā)生死鎖,都可以很快地識別并將之處理掉。007SQL與ORACLE的外鍵約束SQL的外鍵約束可以實現(xiàn)級聯(lián)刪除與級聯(lián)更新,ORACLE則只充許級聯(lián)刪除。CREATETABLEA001(IDINTPRIMARYKEY,NAMEVARCHAR(20))C