美文网首页
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