国产探花免费观看_亚洲丰满少妇自慰呻吟_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
方法雖好,但我應用在一個億級數據庫時還是覺得慢得不行。就算刪一點點數據也覺得好象挺慢的。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永济市| 沛县| 宿州市| 德州市| 新密市| 梁平县| 云梦县| 崇文区| 永川市| 吉水县| 瑞丽市| 浑源县| 二连浩特市| 磴口县| 黄山市| 济南市| 孟州市| 赤壁市| 安龙县| 浏阳市| 射洪县| 白城市| 修水县| 报价| 沅陵县| 犍为县| 巴塘县| 利辛县| 富顺县| 邢台市| 石台县| 海安县| 永济市| 社旗县| 京山县| 赣州市| 连平县| 平罗县| 淳安县| 高雄县| 安泽县|