Oracle刪除重覆記錄

2021-05-17 16:04:18 字數 972 閱讀 6333

oracle刪除重覆記錄的最好的方法:

delete from emp e where e.rowid > (select min(y.rowid)

from emp y

where y.empno = e.empno )

1、子查詢找出某員工最低的rowid(肯定只有乙個),其它大於這條記錄rowid的,全部刪除。

2、oracle中使用rowid刪除重覆記錄最快,因為rowid對應這條記錄在磁碟上的位置

面試:效能優化

規則:select子句中避免使用 『 * 『

規則:使用exists語句代替in語句;

使用not exists代替not in

規則:使用truncate代替delete from 表語句

規則:減少訪問資料庫的次數

規則:減少訪問資料庫的次數

規則:使用表的別名(alias)

規則:盡快使用commit

規則:資料庫冗餘欄位的設計

其它:oracle與效能有關的幾個特徵(三個緩衝區)

面試:企業為什麼經常使用oracle? oracle為什麼這麼牛?

回答:從三個緩衝區入手

一、日誌緩衝區

·在新增一條記錄時,資料庫在後台同時也要記錄一條日誌

·oracle能夠先將日誌寫在記憶體中,緩衝區滿後再一次性寫入磁碟

二、塊緩衝區

·如果乙個表(如部門表)很少更新但經常使用,那麼可以將該錶儲存在記憶體中,從而避免頻繁訪問磁碟。

·訪問記憶體的速度大於高於訪問磁碟的速度。

三、sql緩衝區

·資料庫執行步驟:語法分析、語義分析、編譯、優化……

·所以sql在執行以前所消耗的時間是很長的

·oracle資料庫會將sql儲存在sql緩衝區,如果執行的是相同sql,則無論執行多少次,都只會編譯分析一次。從而減少分析和優化時 間。

快速刪除ORACLE重覆記錄

在oracle中,可以通過唯一rowid實現刪除重覆記錄 還可以建臨時表來實現.這個只提到其中的幾種簡單實用的方法,希望可以和大家分享 以表employee為例 sql desc employee name null?type emp id number 10 emp name varchar2 2...

刪除重覆記錄

我們經常在資料庫中有重複的記錄這時候我們希望刪除那些重複的記錄 你不要告訴我你是一條條手動刪除的哈 select distinct into newtable form 程式設計客棧nbsp tablename drop table tabwww.cppcns.comlename select in...

SQL查詢重覆記錄,刪除重覆記錄

1 查詢表中多餘的重覆記錄,重覆記錄是根據單個字段 docid 來判斷 select from tablename where docid in select docid from tablename group by docid h ing count docid 1 例二 select from...