Oracle數(shù)據(jù)庫系統(tǒng)使用經(jīng)驗(yàn)六則
1.having 子句的用法
having 子句對(duì) group by 子句所確定的行組進(jìn)行控制,having 子句條件中只允許涉及常量,聚組函數(shù)或group by 子句中的列.
2.外部聯(lián)接"+"的用法
外部聯(lián)接"+"按其在"="的左邊或右邊分左聯(lián)接和右聯(lián)接.若不帶"+"運(yùn)算符的表中的一個(gè)行不直接匹配于帶"+"預(yù)算符的表中的任何行,則前者的行與后者中的一個(gè)空行相匹配并被返回.若二者均不帶'+',則二者中無法匹配的均被返回.利用外部聯(lián)接"+",可以替代效率十分低下的 not in 運(yùn)算,大大提高運(yùn)行速度.例如,下面這條命令執(zhí)行起來很慢
倘若利用外部聯(lián)接,改寫命令如下:
可以發(fā)現(xiàn),運(yùn)行速度明顯提高.
3.刪除表內(nèi)重復(fù)記錄的方法
可以利用這樣的命令來刪除表內(nèi)重復(fù)記錄:
不過,當(dāng)表比較大(例如50萬條以上)時(shí),這個(gè)方法的效率之差令人無法忍受,需要另想辦法(可參看拙文《電信計(jì)費(fèi)中長(zhǎng)途重復(fù)話單的技術(shù)處理》,《計(jì)算機(jī)與通信》,1999-07).
[NextPage]
4.set transaction 命令的用法
在執(zhí)行大事務(wù)時(shí),有時(shí)oracle會(huì)報(bào)出如下的錯(cuò)誤:
這說明oracle給此事務(wù)隨機(jī)分配的回滾段太小了,這時(shí)可以為它指定一個(gè)足夠大的回滾段,以確保這個(gè)事務(wù)的成功執(zhí)行.例如
回滾段roll_abc被指定給這個(gè)delete事務(wù),commit命令則在事務(wù)結(jié)束之后取消了回滾段的指定.
5.使用索引的注意事項(xiàng)
select,update,delete 語句中的子查詢應(yīng)當(dāng)有規(guī)律地查找少于20%的表行.如果一個(gè)語句查找的行數(shù)超過總行數(shù)的20%,它將不能通過使用索引獲得性能上的提高.
索引可能產(chǎn)生碎片,因?yàn)橛涗洀谋碇袆h除時(shí),相應(yīng)也從表的索引中刪除.表釋放的空間可以再用,而索引釋放的空間卻不能再用.頻繁進(jìn)行刪除操作的被索引的表,應(yīng)當(dāng)階段性地重建索引,以避免在索引中造成空間碎片,影響性能.在許可的條件下,也可以階段性地truncate表,truncate命令刪除表中所有記錄,也刪除索引碎片.
6.數(shù)據(jù)庫重建應(yīng)注意的問題
在利用import進(jìn)行數(shù)據(jù)庫重建過程中,有些視圖可能會(huì)帶來問題,因?yàn)榻Y(jié)構(gòu)輸入的順序可能造成視圖的輸入先于它低層次表的輸入,這樣建立視圖就會(huì)失敗.要解決這一問題,可采取分兩步走的方法:首先輸入結(jié)構(gòu),然后輸入數(shù)據(jù).命令舉例如下 (uesrname:jfcl,password:hfjf,host sting:ora1,數(shù)據(jù)文件:expdata.dmp):
第一條命令輸入所有數(shù)據(jù)庫結(jié)構(gòu),但無記錄.第二次輸入結(jié)構(gòu)和數(shù)據(jù),64000字節(jié)提交一次.ignore=Y選項(xiàng)保證第二次輸入既使對(duì)象存在的情況下也能成功. 1
上一頁
相關(guān)文章
Oracle 9i 數(shù)據(jù)庫異常關(guān)閉后的啟動(dòng)
Oracle 9i 數(shù)據(jù)庫異常關(guān)閉后的啟動(dòng)...2007-03-03
裝Oracle用PLSQL連接登錄時(shí)不顯示數(shù)據(jù)庫的解決
這篇文章主要介紹了裝Oracle用PLSQL連接登錄時(shí)不顯示數(shù)據(jù)庫的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
WINDOWS下使用DOS命令行連接oracle數(shù)據(jù)庫
本文講述了通過windows下的DOS命令連接oracle數(shù)據(jù)庫并進(jìn)行簡(jiǎn)單操作的方法2018-03-03
升級(jí)和卸載Oracle數(shù)據(jù)庫軟件的命令整理
這篇文章主要介紹了升級(jí)和卸載Oracle數(shù)據(jù)庫軟件的命令整理,包括升級(jí)時(shí)可能用到的查看版本號(hào)和備份操作的命令介紹,需要的朋友可以參考下2015-12-12
Oracle 細(xì)粒度審計(jì)(FGA)初步認(rèn)識(shí)
細(xì)粒度審計(jì)(FGA),是在Oracle 9i中引入的,能夠記錄SCN號(hào)和行級(jí)的更改以重建舊的數(shù)據(jù),本文將詳細(xì)介紹,需要的朋友可以參考下2012-12-12
oracle數(shù)據(jù)庫實(shí)現(xiàn)按多個(gè)字段排序
這篇文章主要介紹了oracle數(shù)據(jù)庫實(shí)現(xiàn)按多個(gè)字段排序方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Oracle常用函數(shù)Trunc及Trunc函數(shù)用法講解
這篇文章主要介紹了Oracle常用函數(shù)Trunc及Trunc函數(shù)用法講解,需要的朋友可以參考下2017-11-11
Oracle跨庫訪問DBLINK使用以及實(shí)際應(yīng)用
這篇文章主要給大家介紹了關(guān)于Oracle跨庫訪問DBLINK使用以及實(shí)際應(yīng)用的相關(guān)資料,DBLink的作用是在局域網(wǎng)內(nèi),通過一臺(tái)服務(wù)器上面的數(shù)據(jù)庫訪問另外一臺(tái)服務(wù)器上面數(shù)據(jù)庫的功能,需要的朋友可以參考下2024-01-01

