我在Oracle 10g上有一个非常简单的表,用于保存进程中的日志消息。该表每天产生大约1 GB的数据。我想只保留一周的数据。我是否需要使用分区清理Oracle 10g表中的旧数据?
完成此操作的最佳方法是什么? 创建一个不断删除旧数据的过程? 我是否需要使用分区?
如果需要,我可以删除/截断/删除整个表。
这是表:
CREATE TABLE "TABLE_LOGS"
(
"TABLE_ID" VARCHAR2(200 BYTE),
"TABLE_NUMBER" NUMBER(19,0),
"DESCRIPTION" VARCHAR2(2000 BYTE),
"DATE" TIMESTAMP (6),
"TYPE" VARCHAR2(100 BYTE),
"LEVEL" NUMBER(*,0)
)
不应该是
Rodrick
如果我使用这种方法,磁盘空间会发生什么?新数据是否会使用已删除记录的相同磁盘空间?我的意思是,我认为桌子将使用相同的空间。我是对的?所有的磁盘空间会被突然使用吗? – Rodrick
删除语句“释放”的空间最终将被回收。也许:)这真的取决于。如果一个数据块已满,并且已经从freelist中取出,那么可能需要从该块中删除几行,然后才能将其放回到freelist上。 – BobC