發(fā)文章
發(fā)文工具
撰寫
網(wǎng)文摘手
文檔
視頻
思維導圖
隨筆
相冊
原創(chuàng)同步助手
其他工具
圖片轉(zhuǎn)文字
文件清理
AI助手
留言交流
我覺得有兩種方法刪除數(shù)據(jù)的效率是蠻大的,rowid 和分析函數(shù)。
我現(xiàn)在用個例子來證明下:只匹配 NAME 完全相等的記錄
先來創(chuàng)建個表
CREATE TABLE TEMPTEMP (ID NUMBER,NAME VARCHAR2(20));-- 生成重復數(shù)據(jù)-- 0.297秒DECLAREBEGINFOR I IN 1..10000 LOOPINSERT INTO TEMPTEMP VALUES (I, 'AAA' || I);END LOOP;END;/-- 0.015DECLAREBEGINFOR I IN 1..1000 LOOPINSERT INTO TEMPTEMP VALUES (I, 'AAA' || I);END LOOP;END;/-- 0.031DECLARETE INT;BEGINFOR I IN 10001..11000 LOOPTE := 1;INSERT INTO TEMPTEMP VALUES (I, 'AAA' || TE);TE := TE + 1;END LOOP;END;/SQL> select count(*) from temptemp;COUNT(*)--------------12000
創(chuàng)建索引
-- 0.015秒 建索引CREATE INDEX INDEX_TEMP ON TEMPTEMP(ID, NAME);
1.根據(jù)rowid刪除數(shù)據(jù)
-- 0.047秒 2000 rows deleted DELETE FROM TEMPTEMP T1 WHERE T1.ROWID !=(SELECT MAX(T2.ROWID) FROM TEMPTEMP T2 -----這里還可以用最小值去重復WHERE /*T1.ID = T2.ID AND*/ T1.NAME = T2.NAME);-- 去掉 注釋后 0.047秒 1000 rows deleted
2.使用分析函數(shù)
-- 0.031秒 2000 rows deletedDELETE FROM TEMPTEMP T1 WHERE T1.ROWID IN (SELECT RID FROM (SELECT ROWID RID, ROW_NUMBER() OVER (PARTITION BY /*ID,*/ NAME ORDER BY ROWID) RN FROM TEMPTEMP) WHERE RN != 1);-- 去掉 ID 匹配后 0.031秒 1000 rows deleted
來自: 昵稱10504424 > 《Oracle》
0條評論
發(fā)表
請遵守用戶 評論公約
Oracle 綁定變量
oracle 中,對于一個提交的sql語句,存在兩種可選的解析過程, 一種叫做硬解析,一種叫做軟解析.綁定變量只是起到占位的作用,同名的綁定變量并不意味著在它們是同樣的,在傳遞時要考慮的是傳遞的值與綁定...
細數(shù)你應該修煉的Oracle基本功 - 51CTO.COM
1. select avg(sal) avg_sal,deptno from emp group by deptno.select d.dname,t.avg_sal,t.deptno,s.grade from (select avg(sal) avg_sal,deptno from emp group by deptno) t join salgrade s ...
Oracle循環(huán)語句
Oracle循環(huán)語句。編寫循環(huán)控制結構時,用戶可以使用基本循環(huán),WHILE循環(huán)和FOR循環(huán)等三種類型的循環(huán)語句,下面分別介紹使用這三種循環(huán)語句的方法。嵌套循環(huán)是指在一個循環(huán)語句之中嵌入另一個循環(huán)語句,...
PLSQL語法
PLSQL語法PL/SQL是ORACLE對標準數(shù)據(jù)庫語言的擴展,ORACLE公司已經(jīng)將PL/SQL整合到ORACLE 服務器和其他工具中了,近幾年中更多的開發(fā)人員和DBA開始使用PL/SQL,本文將講述PL/SQL基礎語法,結構和組件、以...
Oracle PL/SQL開發(fā)基礎(第二十五彈:操縱游標數(shù)據(jù))
--定義游標結果記錄變量 CURSOR dept_cursor IS SELECT * FROM dept FOR UPDATE deptno,dname; --定義游標變量BEGIN OPEN dept_cursor; --打開游標 FETCH dept_cursor INTO dept_row; --提取游標數(shù)據(jù) W...
mysql游標循環(huán)的使用
mysql游標循環(huán)的使用。-- 需要定義接收游標數(shù)據(jù)的變量 DECLARE a CHAR(16); -- 游標 DECLARE cur CURSOR FOR SELECT i FROM test.t; -- 遍歷數(shù)據(jù)結束標志 DECLARE done INT DEFAULT FALSE; -- 將結束...
DB2存儲過程4類循環(huán)簡單實例
MySql 筆記三 循環(huán)語句
delimiter $$ // 定義結束符為 $$drop procedure if exists wk; // 刪除 已有的 存儲過程create procedure wk() // 創(chuàng)建新的存儲過程begin declare i int; // ...
MySQL5.0新特性教程存儲過程:第三講
里面有兩個IF語句,一個是IF語句END IF,另一個是IF語句ELSE語句END IF。我們可以在BEGIN、WHILE、REPEAT或者LOOP語句前使用語句標號,語句標號只能在合法的語句前面使用。因此"LEAVE label_3&quo...
微信掃碼,在手機上查看選中內(nèi)容