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

首頁 > 數據庫 > Oracle > 正文

Oracle中大批量刪除數據的方法

2024-08-29 13:57:15
字體:
來源:轉載
供稿:網友
寫一個循環刪除的過程。
create or replace procedure delBigTab(p_TableName in varchar2,p_Condition in varchar2,p_Count in varchar2) 
as
pragma autonomous_transaction;
n_delete number:=0;
begin
 while 1=1 loop
EXECUTE IMMEDIATE
'delete from '||p_TableName||' where '||p_Condition||' and rownum <= :10000'
USING p_Count;
if SQL%NOTFOUND then
exit;
else
n_delete:=n_delete + SQL%ROWCOUNT;
end if;
commit;
end loop;
commit;
DBMS_OUTPUT.PUT_LINE('Finished!');
DBMS_OUTPUT.PUT_LINE('Totally '||to_char(n_delete)||' records deleted!');
end delBigTab; 
調用:
SQL> set timing on
SQL> exec delBigTab('HS_DLF_DOWNLOG_HISTORY','NUMDLFLOGGUID < 11100000','10000');
PL/SQL procedure successfully completed.
Elapsed: 00:00:18.54
方法雖好,但我應用在一個億級數據庫時還是覺得慢得不行。就算刪一點點數據也覺得好象挺慢的。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荥阳市| 龙陵县| 搜索| 张家口市| 黄浦区| 清原| 正镶白旗| 弋阳县| 彭水| 黑龙江省| 雷山县| 张家口市| 阿合奇县| 伊金霍洛旗| 巴中市| 夹江县| 若尔盖县| 长沙县| 南昌县| 通榆县| 军事| 遂平县| 台州市| 万全县| 自治县| 扬中市| 兴海县| 缙云县| 封开县| 洪洞县| 应城市| 法库县| 枣阳市| 邹平县| 贞丰县| 胶州市| 肃宁县| 华容县| 文安县| 张家界市| 临城县|