You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Oracle数据库中DROP PARTITION操作删除的行数?

在Oracle中执行DROP PARTITION时获取被删除行数

要在执行ALTER TABLE <Table_Name> DROP PARTITION PART_<Name>操作时获取被删除的行数,且不提前统计分区数据,可通过以下步骤实现:

  • 执行DROP PARTITION时不添加PURGE关键字,让被删除的分区进入回收站:
    ALTER TABLE <Table_Name> DROP PARTITION PART_<Name>;
    
  • 查询回收站视图USER_RECYCLEBIN,定位刚删除的分区对应的回收站表对象:
    SELECT object_name, original_name, type
    FROM user_recyclebin
    WHERE original_name = '<Table_Name>'
      AND type = 'TABLE PARTITION'
      ORDER BY droptime DESC;
    
    这里的object_name是分区被放入回收站后的临时表名,格式通常为BIN$xxxxxx$0。
  • 查询该回收站临时表的行数,即为被删除的分区数据量:
    SELECT COUNT(*) AS deleted_rows
    FROM "BIN$xxxxxx$0";
    
    注意回收站表名需要用双引号包裹,因为包含特殊字符。
  • 如果不需要保留回收站中的该分区,可执行清理:
    PURGE TABLE <Table_Name>;
    -- 或者精准清理单个分区对象
    PURGE TABLE PARTITION <Table_Name>.PART_<Name>;
    

另外,若你的Oracle版本支持,也可以通过**启用细粒度审计(FGA)**捕获DROP PARTITION操作的相关数据量,但这种方式需要提前配置审计策略,复杂度较高,适合需要长期监控的场景。

内容的提问来源于stack exchange,提问作者Venkatesh R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 12:45:42