iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >批量清除一个表的数据,TB级别数据。
  • 319
分享到

批量清除一个表的数据,TB级别数据。

2024-04-02 19:04:59 319人浏览 安东尼
摘要

有个需求,要求清理8TB的数据,只保留一个月的数据,现有数据量由2010年至2018年底都需要清除,因此写了通用的该清除脚本。该表为没有分区的含有BLOB的大表,一共由三列,file_no,BLOB,还有c

有个需求,要求清理8TB的数据,只保留一个月的数据,现有数据量由2010年至2018年底都需要清除,因此写了通用的该清除脚本。该表为没有分区的含有BLOB的大表,一共由三列,file_no,BLOB,还有create_time列,其中file_no为主键,create_time非空。

脚本如下:
create or replace procedure proc_batch_delete(PI_table_name in varchar2, -- table name which will delete data
PI_where_condition in varchar2, -- delete sql condition
PI_thread_count in varchar2, -- thread number of the sql which use parallel hint
PI_commit_count in varchar2) is -- per delete count and commit count
v_delete integer;
v_sql varchar2(2000);
begin
dbms_output.put_line('Delete table is ' || PI_table_name || ';');
dbms_output.put_line('Where condition is ' || PI_where_condition || ';');
dbms_output.put_line('Number of threads is ' || to_char(PI_thread_count) || ';');
dbms_output.put_line('Commit count is ' || to_char(PI_commit_count) || ';');
dbms_output.put_line('Now start to batch delete. Timestamp is ' || to_char(sysdate, 'yyyy-mm-dd hh34:mi:ss'));

v_delete := 0;

execute immediate 'alter session enable parallel dml';

v_sql := 'delete /+ parallel('||PI_table_name || ' ' || PI_thread_count ||') / from '
|| PI_table_name ||' where '|| PI_where_condition || 'and rownum <= ' || PI_commit_count;
dbms_output.put_line('Sql is ' || v_sql);

while 1=1 loop
EXECUTE IMMEDIATE v_sql;
if SQL%NOTFOUND then
exit;
else
v_delete:=v_delete + SQL%ROWCOUNT;
end if;
commit;
dbms_output.put_line('already deleted :' || to_char(v_delete) ||'.Timestamp is' || to_char(sysdate, 'yyyy-mm-dd hh34:mi:ss'));
end loop;
commit;

dbms_output.put_line('End to batch delete. Timestamp is ' || to_char(sysdate, 'yyyy-mm-dd hh34:mi:ss'));

end proc_batch_delete;

1.该图

批量清除一个表的数据,TB级别数据。

2.执行语句
批量清除一个表的数据,TB级别数据。
3.输入值
批量清除一个表的数据,TB级别数据。

4.显示值
pi_table_name 需要删除数据的表名
pi_where_condition 选择条件
pi_thread_count并发线程
pi_commit_count 每次删除和提交事务数量

批量清除一个表的数据,TB级别数据。

您可能感兴趣的文档:

--结束END--

本文标题: 批量清除一个表的数据,TB级别数据。

本文链接: https://www.lsjlt.com/news/40143.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL 删除数据 批量删除(大量)数据
    在删除数据的时候根据不同的场景使用不同的方法,比如说删除表中部分数据、删除表的结构、删除所有记录并重置自增ID、批量删除大量数据等,可以使用delete、truncate、drop等语句。 一、方法分类 二、具体方法 类型语句删...
    99+
    2023-08-30
    mysql 数据库 java
  • mysql怎么批量删除表数据
    如果要批量删除表数据,可以使用以下方法: 使用DELETE语句批量删除数据: DELETE FROM table_nam...
    99+
    2024-04-09
    mysql
  • oracle怎么批量删除数据库表
    要批量删除数据库表,可以使用Oracle SQL的DROP TABLE命令。以下是一个示例: DROP TABLE table1, ...
    99+
    2024-04-09
    oracle 数据库
  • 数据库中如何批量删除数据
    这篇文章将为大家详细讲解有关数据库中如何批量删除数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在一个Oracle数据库运行过程中,有时候会遇到要批量删除数据的情况...
    99+
    2024-04-02
  • mysql怎么批量删除数据库中的数据
    mysql怎么批量删除数据库中的数据?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql批量删除数据库中数据的方法:通...
    99+
    2024-04-02
  • Python大批量写入数据(百万级别)的方法
    目录背景方案代码方案二方案一总结背景 现有一个百万行数据的csv格式文件,需要在两分钟之内存入数据库。 方案 方案一:多线程+协程+异步MySql方案二:多线程+MySql批量插入 ...
    99+
    2023-08-08
    python批量写入文件 python处理大量数据 python批量处理数据
  • MYSQL怎么批量删除数据
    这篇文章主要介绍“MYSQL怎么批量删除数据”,在日常操作中,相信很多人在MYSQL怎么批量删除数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MYSQL怎么批量删除数据”...
    99+
    2024-04-02
  • navicat怎么批量删除数据
    批量删除数据:编写 sql 删除查询,如 delete from table_name;在 navicat sql 编辑器中执行查询;确认删除操作;验证删除成功,如刷新表视图或...
    99+
    2024-04-24
    navicat
  • mysql中批量删除数据的方法
    mysql中批量删除数据的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql中批量删除数据的方法:首先找出符合条...
    99+
    2022-11-30
    mysql
  • 数据库怎么批量修改一列数据
    要批量修改数据库中的一列数据,可以使用以下步骤: 首先,连接到数据库。这可以通过使用适当的数据库管理工具(如MySQL Work...
    99+
    2023-10-27
    数据库
  • mysql根据一个表的数据更新另一个表数据的SQL写法
    目录 问题描述解决办法(推荐第三种) 问题描述 概述:用一个表中的字段去更新另外一个表中的字段, MySQL 中有相应的 update 语句来支持,不过这个 update 语法有些特殊。看一个例子就明白了。 解决...
    99+
    2023-08-16
    mysql sql 数据库
  • MySQL如何统计一个数据库所有表的数据量
    目录场景:官网的解释:补充:查询表大小总结 场景: mysql统计一个数据库里所有表的数据量,最近在做统计想查找一个数据库里基本所有的表数据量,数据量少的通过selec&#...
    99+
    2024-04-02
  • oracle怎么清除表空间数据
    要清除Oracle表空间数据,可以使用以下方法: 使用TRUNCATE TABLE命令清空表中的数据: TRUNCATE TAB...
    99+
    2024-05-11
    oracle
  • PHP中怎么批量删除数据
    本篇文章为大家展示了PHP中怎么批量删除数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先在文章列表页面(list.php),将多选筐命名为:“$del_id[]”,值为文章ID号。 例如(li...
    99+
    2023-06-17
  • 数据清洗的大掃除:扫除数据污垢
    数据清洗的必要性 数据清洗是数据准备过程中的关键步骤,它涉及识别和更正数据中的错误、不一致和缺失值。脏数据会导致分析和决策失真,浪费时间和资源。 数据清洗有助于: 提高数据准确性 确保数据一致性 填补缺失值 识别和删除异常值 转换数据...
    99+
    2024-02-16
    数据清洗 数据质量 数据挖掘 脏数据 数据分析
  • mysql中怎么删除表中一个数据
    mysql 中使用 delete 语句删除表一行数据,语法为 delete from table_name where condition;步骤包括:指定要删除数据的...
    99+
    2024-05-01
    mysql
  • sql怎么批量修改表数据
    要批量修改表数据,可以使用SQL的UPDATE语句结合WHERE子句来实现。以下是一个示例: 假设有一个名为students...
    99+
    2024-04-08
    sql
  • sql怎么批量更新表数据
    要批量更新表数据,可以使用SQL中的UPDATE语句结合WHERE条件来实现。 以下是一个示例: UPDATE 表名 SET...
    99+
    2024-04-09
    sql
  • oracle如何批量导出表数据
    Oracle数据库可以使用以下方法批量导出表数据: 使用SQL*Plus工具: 可以使用SQL*Plus工具执行导出命令来批量导...
    99+
    2024-04-09
    oracle
  • hive怎么批量更新表数据
    在Hive中,可以使用INSERT OVERWRITE语句来批量更新表数据。以下是一个示例: 假设有一个表名为example,结构如...
    99+
    2024-03-14
    hive
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作