热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

需要从具有1.5TB数据的表中清除三分之一的数据-Needtopurgeonethirdofdatafromatablehaving1.5TBdata

Haveaoracletablewithalmost1.5TBdatainit.Needtopurgeatleast0.5TBdatafromit.Thisi

Have a oracle table with almost 1.5 TB data in it. Need to purge atleast 0.5 TB data from it. This is a Production table, and have significant number of write commands running on it. What is the best way and fastest way to purge this data.

有一个带有近1.5 TB数据的oracle表。需要从中清除至少0.5 TB的数据。这是一个Production表,并且在其上运行了大量的写命令。清除此数据的最佳方法和最快方法是什么。

2 个解决方案

#1


2  

"Purge" = "remove" = "delete", I presume.

我猜想,“清除”=“删除”=“删除”。

You have several options; here are some of them:

你有几个选择;这里是其中的一些:

  • Is the table partitioned? I guess not; otherwise, you'd just truncate (or drop) partitions you don't need any more, and it would be fast

    表分区了吗?我猜不会;否则,你只是截断(或删除)你不再需要的分区,而且速度很快

    • can you partition it now?
    • 你现在可以分区吗?

  • Another option is to literally delete those rows. It'll create a large undo.

    另一种选择是逐字删除这些行。它会创建一个大的撤消。

    • this option is probably quite slow
    • 这个选项可能很慢

  • Or, use CTAS (Create Table As Select) and create a new table with rows you'd want to keep; then truncate (or, if you can afford it, drop) the original table and move rows back (or, if you dropped it, rename newly created table to the old, original name). Depending on foreign key constraints, that might not be that simple.

    或者,使用CTAS(Create Table As Select)创建一个包含您想要保留的行的新表;然后截断(或者,如果你能负担得起,删除)原始表并将行移回(或者,如果你删除它,将新创建的表重命名为旧的原始名称)。根据外键约束,可能不那么简单。

    • this one takes additional space on a disk. Do you have it? What about constraints?
    • 这个占用磁盘上的额外空间。你有吗?限制怎么样?

  • Or, delete rows in chunks, using loop in a PL/SQL procedure. In order to save some undo space, commit within a loop (not too frequently, though). ORA-01555 (snapshot too old) might appear

    或者,使用PL / SQL过程中的循环删除块中的行。为了节省一些撤消空间,在循环内提​​交(但不要太频繁)。可能会出现ORA-01555(快照太旧)

    • deleting piece-by-piece is OK if you aren't worried about "all or nothing". What if delete fails? Will it affect anything else? How?
    • 如果您不担心“全有或全无”,可以逐条删除。如果删除失败怎么办?它会影响其他什么吗?怎么样?

Which one is the best? That's a million dollars question, and I don't have an answer to it. If possible, import that table into your testing environment and ... well, test those options. Testing in production isn't recommended, right?

哪一个是最好的?这是一个百万美元的问题,我没有答案。如果可能,将该表导入您的测试环境中......并且,测试这些选项。不推荐在生产中进行测试,对吗?

#2


0  

We have the same problem at work. Our plan of attack is to do an online redefinition to partition the table. Once that is done, the relevant partitions can be dropped.

我们在工作中遇到同样的问题。我们的攻击计划是进行在线重新定义以对表进行分区。完成后,可以删除相关分区。

We are currently setting up a copy of the database on a test machine to test the approach.

我们目前正在测试机器上设置数据库的副本以测试该方法。


推荐阅读
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • java datarow_DataSet  DataTable DataRow 深入浅出
    本篇文章适合有一定的基础的人去查看,最好学习过一定net编程基础在来查看此文章。1.概念DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据 ... [详细]
  • 本文详细介绍了如何使用Linux下的mysqlshow命令来查询MySQL数据库的相关信息,包括数据库、表以及字段的详情。通过本文的学习,读者可以掌握mysqlshow命令的基本语法及其常用选项。 ... [详细]
  • selenium通过JS语法操作页面元素
    做过web测试的小伙伴们都知道,web元素现在很多是JS写的,那么既然是JS写的,可以通过JS语言去操作页面,来帮助我们操作一些selenium不能覆盖的功能。问题来了我们能否通过 ... [详细]
  • Java连接MySQL数据库的方法及测试示例
    本文详细介绍了如何安装MySQL数据库,并通过Java编程语言实现与MySQL数据库的连接,包括环境搭建、数据库创建以及简单的查询操作。 ... [详细]
  • 本文介绍了MySQL窗口函数的基本概念、应用场景及常见函数的使用方法。窗口函数在处理复杂查询时非常有用,例如计算每个用户的订单排名、环比增长率、以及动态聚合等。 ... [详细]
  • 解决ADODB连接Access时出现80004005错误的方法
    本文详细介绍了如何解决在使用ADODB连接Access数据库时遇到的80004005错误,包括错误原因分析和具体的解决步骤。 ... [详细]
  • binlog2sql,你该知道的数据恢复工具
    binlog2sql,你该知道的数据恢复工具 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 解决JavaScript中法语字符排序问题
    在开发一个使用JavaScript、HTML和CSS的Web应用时,遇到从SQLite数据库中提取的法语词汇排序不正确的问题,特别是带重音符号的字母未按预期排序。 ... [详细]
  • 本文作为《WM平台上使用Sybase Anywhere 11》系列的第二篇,将继续探讨在Windows Mobile (WM) 系统中如何高效地操作Sybase Anywhere 11数据库。继上一篇关于安装与基本测试的文章之后,本篇将深入讲解数据库的具体操作方法。 ... [详细]
  • 最新版 EasyCriteria 3.0 已正式上线,该版本经过全面重构,带来了多项性能优化与功能增强。更多详情请参阅官方文档:http://uaihebert.com/?p=1898 ... [详细]
  • 本文详细介绍了 Java 中 org.apache.jena.atlas.lib.ByteBufferLib 类下的 acopyArray 方法,并提供了多个实际应用中的代码示例,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文详细介绍了PostgreSQL与MySQL在SQL语法上的主要区别,包括如何使用COALESCE替代IFNULL、金额格式化的方法、别名处理以及日期处理等关键点。 ... [详细]
author-avatar
潇然free
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有