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

首頁 > 數據庫 > Oracle > 正文

六則Oracle數據庫系統使用經驗

2024-08-29 13:49:47
字體:
來源:轉載
供稿:網友
  筆者的工作與Oracle數據庫"息息相關",從事Oracle開發及治理已經10余年,在實踐中學習和摸索了一些小經驗,在此與大家共同探討.

  ---- 1.having 子句的用法

  ---- having 子句對 group by 子句所確定的行組進行控制,having 子句條件中只答應涉及常量,聚組函數或group by 子句中的列.   ---- 2.外部聯接"+"的用法

  ---- 外部聯接"+"按其在"="的左邊或右邊分左聯接和右聯接.若不帶"+"運算符的表中的一個行不直接匹配于帶"+"預算符的表中的任何行,則前者的行與后者中的一個空行相匹配并被返回.若二者均不帶´+´,則二者中無法匹配的均被返回.利用外部聯接"+",可以替代效率十分低下的 not in 運算,大大提高運行速度.例如,下面這條命令執行起來很慢

select a.empno from emp a where a.empno not in
 (select empno from emp1 where job=´SALE´);

  ---- 倘若利用外部聯接,改寫命令如下:

  select a.empno from emp a ,emp1 b
where a.empno=b.empno(+)
and b.empno is null
and b.job=´SALE´;

  ---- 可以發現,運行速度明顯提高.

  ---- 3.刪除表內重復記錄的方法

  ---- 可以利用這樣的命令來刪除表內重復記錄:

 delete from table_name a
  where rowid< (select max(rowid) from table_name
where column1=a.column1 and column2=a.column2
 and colum3=a.colum3 and ...);

  ---- 不過,當表比較大(例如50萬條以上)時,這個方法的效率之差令人無法忍受,需要另想辦法(可參看拙文《電信計費中長途重復話單的技術處理》,《計算機與通信》,1999-07).

  ---- 4.set transaction 命令的用法

  ---- 在執行大事務時,有時oracle會報出如下的錯誤:

 ORA-01555:snapshot too old (rollback segment too small)

  ---- 這說明oracle給此事務隨機分配的回滾段太小了,這時可以為它指定一個足夠大的回滾段,以確保這個事務的成功執行.例如

 set transaction use rollback segment roll_abc;
 delete from table_name where ...
 commit;

  ---- 回滾段roll_abc被指定給這個delete事務,commit命令則在事務結束之后取消了回滾段的指定.

  ---- 5.使用索引的注重事項

  ---- select,update,delete 語句中的子查詢應當有規律地查找少于20%的表行.假如一個語句查找的行數超過總行數的20%,它將不能通過使用索引獲得性能上的提高.

  ---- 索引可能產生碎片,因為記錄從表中刪除時,相應也從表的索引中刪除.表釋放的空間可以再用,而索引釋放的空間卻不能再用.頻繁進行刪除操作的被索引的表,應當階段性地重建索引,以避免在索引中造成空間碎片,影響性能.在許可的條件下,也可以階段性地truncate表,truncate命令刪除表中所有記錄,也刪除索引碎片.

  ---- 6.數據庫重建應注重的問題

  ---- 在利用import進行數據庫重建過程中,有些視圖可能會帶來問題,因為結構輸入的順序可能造成視圖的輸入先于它低層次表的輸入,這樣建立視圖就會失敗.要解決這一問題,可采取分兩步走的方法:首先輸入結構,然后輸入數據.命令舉例如下 (uesrname:jfcl,passWord:hfjf,host sting:ora1,數據文件:eXPdata.dmp):

 imp jfcl/hfjf@ora1 file=empdata.dmp rows=N
 imp jfcl/hfjf@ora1 file=empdata.dmp full=Y buffer=64000
commit=Y ignore=Y

  ---- 第一條命令輸入所有數據庫結構,但無記錄.第二次輸入結構和數據,64000字節提交一次.ignore=Y選項保證第二次輸入既使對象存在的情況下也能成功.


上一篇:[ORACLE] SQL語句的優化方法

下一篇:ORACLE DATE和TIMESTAMP數據類型的比較

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 郁南县| 嵊州市| 黔西县| 璧山县| 纳雍县| 宁海县| 太谷县| 西林县| 阳新县| 文水县| 桂平市| 马公市| 吉安市| 光泽县| 清丰县| 望城县| 昌邑市| 泰和县| 凉城县| 江油市| 永安市| 达尔| 铜陵市| 乃东县| 高碑店市| 仪征市| 紫金县| 无为县| 政和县| 阿城市| 阿合奇县| 江都市| 察哈| 南靖县| 苗栗市| 桂东县| 土默特左旗| 阿拉善左旗| 汕尾市| 扶绥县| 靖安县|