暂无图片
分享
Oracle
2023-03-17
oracle怎么导出部分子分区(subpartition)

因生成数据过大,现准备迁移部分数据到历史库,表按地区分区,地区分区下面又按月份做子分区,请教:

1.怎么查看各个子分区大小(subpartition);

2.怎么导出部分子分区,是子分区,不是分区,大概需要导出700个左右的子分区;

请教下有没有合适的方法。

收藏
分享
2条回答
默认
最新
S
seven

  1. 查看各个子分区大小

可以使用以下 SQL 语句查看指定表的所有子分区的大小:

SELECT SUBSTR(TABLE_NAME,1,30) TABLE_NAME, SUBSTR(PARTITION_NAME,1,30) PARTITION_NAME, SUBSTR(SUBPARTITION_NAME,1,30) SUBPARTITION_NAME, NUM_ROWS, AVG_ROW_LEN, DATA_LENGTH, INDEX_LENGTH FROM ALL_TAB_SUBPARTITIONS WHERE TABLE_OWNER = 'your_schema_name' AND TABLE_NAME = 'your_table_name' ORDER BY TABLE_NAME, PARTITION_NAME, SUBPARTITION_NAME;

该命令会列出指定表的所有子分区的名称、行数、平均行长度、数据长度和索引长度等信息。


2、导出部分子分区

如果您要导出部分子分区,可以使用 expdp 命令进行导出。下面是一个示例命令:

expdp 'your_schema_name/your_password@your_database_name' DIRECTORY=EXPORT_DIR DUMPFILE=export_file.dmp TABLES=your_table_name PARTITION_OPTIONS="PARTITION(your_partition_name:subpartition_1,subpartition_2,...)"

其中,your_schema_name 是指定的数据库用户,your_password 是用户的密码,your_database_name 是指定的数据库名称,EXPORT_DIR 是指定的导出目录,export_file.dmp 是导出文件的名称,your_table_name 是指定的表名称,your_partition_name 是指定的分区名称,subpartition_1 和 subpartition_2 是指定的子分区名称列表。


该命令会将指定的子分区导出到指定的文件中。需要导出的子分区列表可以根据实际情况进行修改。

暂无图片 评论
暂无图片 有用 0
暂无图片
Oracle
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏