美文网首页
Oracle 使用delete删除数据后,查询很慢

Oracle 使用delete删除数据后,查询很慢

作者: Rinaloving | 来源:发表于2019-08-02 13:52 被阅读0次
今天想清空表里面所有数据,但是保存其中一条,于是自己写了一个游标,使用delete方式删除数据,等删除完成了,我使用查询语句查询该表的时候,查询非常慢,按理来说表中多余数据都删除了,只剩下一条数据了。怎么会变得如此慢呢?带着疑问问了别人,说是要重建一下索引。按照他的方法试了之后,果然快了。

declare 
cursor biz_cursor is

select fid from biz_files for update;
v_fid biz_files.fid%type; -- 定义变量
begin
open biz_cursor; -- 打开游标
loop
fetch biz_cursor into v_fid; -- 提取游标数据赋值给变量
exit when biz_cursor%notfound;
if v_fid <> '6388f412-69d8-43a7-a55f-72d3bcdd'then -- 当变量 v_fid成立时执行删除操作
delete from BIZ_FILES where current of biz_cursor;
end if;
end loop;
close biz_cursor; -- 关闭游标
end;


alter index PKFID(索引名) rebuild tablespace RCMR_JK(表空间名) online;

相关文章

网友评论

      本文标题:Oracle 使用delete删除数据后,查询很慢

      本文链接:https://www.haomeiwen.com/subject/rwlldctx.html