【问题标题】:cannot clear the table无法收拾桌子
【发布时间】:2021-07-19 03:34:15
【问题描述】:

我已经清除了 DB_PROD 模式的 DB_REQUESTS 表上的记录,但是在表空间空闲空间没有增加之后。怎么办?

delete from db_requests where to_char(to_date(transactiondate,'YYYY-MM-DD'),'YYYY-MM-DD') 
<='2021-05-31';

9566525 rows deleted.

SQL> commit;

Commit complete.

【问题讨论】:

  • 与问题无关,但to_char(to_date(transactiondate,'YYYY-MM-DD'),'YYYY-MM-DD') &lt;='2021-05-31' 应为transactiondate &lt;= date '2021-05-31 以避免不必要的强制转换

标签: database oracle oracle19c


【解决方案1】:

DELETE 不会为 other 表释放空间,只为 this 表释放空间。如果你想找回那个空间,那么你可以这样做:

alter table DB_REQUESTS move online

alter table DB_REQUESTS shrink space

但如果这个表要再次增长,那么你可能也不需要。

顺便说一句,TRANSACTIONDATE 是什么数据类型?因为除非绝对必要,否则 to_date/to_char 的东西通常是个坏主意

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 2011-06-29
    • 1970-01-01
    相关资源
    最近更新 更多