删除Oracle表的大量行 [英] Deleting large number of rows of an Oracle table
问题描述
我有一个公司的数据表,它有250 Gb的数据,有35列.我需要删除大约215Gb的数据 显然是要从表中删除的行数很多.该表没有否主键.
I have a data table from company which is of 250Gb having 35 columns. I need to delete around 215Gb of data which is obviously large number of rows to delete from the table. This table has no primary key.
从该表中删除数据的最快方法是最快的方法? Oracle中有用于此类大型删除过程的工具吗?
What could be the fastest method to delete data from this table? Are there any tools in Oracle for such large deletion processes?
请向我建议使用Oracle的最快方法.
Please suggest me the fastest way to do this with using Oracle.
推荐答案
如上面的回答所述,最好将要保留的行移动到单独的表中并截断该表,因为有一个名为HIGH WATERMARK
的东西. .可以在此处找到更多详细信息
As it is said in the answer above it's better to move the rows to be retained into a separate table and truncate the table because there's a thing called HIGH WATERMARK
. More details can be found here http://sysdba.wordpress.com/2006/04/28/how-to-adjust-the-high-watermark-in-oracle-10g-alter-table-shrink/ . The delete operation will overwhelm your UNDO TABLESPACE
it's called.
recovery model
这个术语相当适用于我相信的mssql :).
The recovery model
term is rather applicable for mssql I believe :).
希望它能使问题更明确.
hope it clarifies the matter abit.
谢谢.
这篇关于删除Oracle表的大量行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!