oracle里,truncate一个分区,能不能保留全局索引

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle里,truncate一个分区,能不能保留全局索引相关的知识,希望对你有一定的参考价值。

oracle里,我要truncate表的一个分区,那么表的全局索引就会失效,请问有没有什么方法能够保留这个全局索引

参考技术A truncate一个表(或表分区)不影响索引,不存在保留的问题。 参考技术B truncate表分区后,不影响索引的。只是表数据没了,当然特殊情况也是有可能的,如果索引失效,先通过dba_indexs查询一下,是否该索引已经失效,如果失效,那么就alter重建索引吧。 参考技术C 只能重建吧本回答被提问者采纳

oracle 查询哪些表分区

我的数据库里有部分表是分区表,请问怎么能查到有哪些表是分区表?

如果查询当前用户下得分区表:
select * from user_tables where partitioned='YES'
如果要查询整个数据库中的分区表:
select * from dba_tables where partitioned='YES'
如果要查询某个用户下得分区表:
select * from dba_tables where partitioned='YES' and owner='ABCDEFG'
其中ABCDEFG为用户名
参考技术A v$dba_tables
v$user_tables
参考技术B select * from USER_TABLES
where partitioned='YES';

以上是关于oracle里,truncate一个分区,能不能保留全局索引的主要内容,如果未能解决你的问题,请参考以下文章

oracle数据表分区,truncate或drop后会导致索引失效,除了重建索引有没有更好的快速解决方法?

oracle建表按日分区,如何truncate当前日期15天前的记录分区

oracle上亿表海量数据进行大批量数据删除有啥好的解决方案

oracle中delete drop truncate的用法和区别

怎么恢复oracle 中被drop掉的分区

sql中能使用 truncate实现有条件的删除吗?我试了试,好像不能。我需要确定一下,如果能,如何写。