Maison  >  Article  >  base de données  >  Comment ajouter des partitions à une table dans Oracle

Comment ajouter des partitions à une table dans Oracle

WBOY
WBOYoriginal
2022-03-07 15:26:5628604parcourir

Dans Oracle, vous pouvez utiliser l'instruction ALTER avec "ADD PARTITION" pour ajouter des partitions à la table. La syntaxe est "ALTER TABLE nom de la table ADD PARTITION partition VALUES".

Comment ajouter des partitions à une table dans Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.

Comment ajouter des partitions à une table dans Oracle

1. Ajouter des partitions

La commande suivante ajoute une partition P3 à la table SALES

ALTER TABLE SALES ADD PARTITION P3 VALUES LESS THAN(TO_DATE('2018-09-01','YYYY-MM-DD'));

Remarque : la limite de partition ajoutée ci-dessus doit être supérieure à la dernière limite de partition .

La commande suivante ajoute une sous-partition P3SUB1 à la partition P3 de la table SALES

ALTER TABLE SALES MODIFY PARTITION P3 ADD SUBPARTITION P3SUB1 VALUES('COMPLETE');

2. Supprimer la partition

La commande suivante supprime la partition de la table P3 :

ALTER TABLE SALES DROP PARTITION P3;

La commande suivante supprime la sous-partition P4SUB1 :

ALTER TABLE SALES DROP SUBPARTITION P4SUB1;

Remarque : Si la partition supprimée est la seule partition de la table, alors cette partition ne peut pas être supprimée. Pour supprimer cette partition, la table doit être supprimée.

3. Tronquer la partition

Tronquer une partition signifie supprimer les données d'une certaine partition, cela ne supprimera pas la partition, ni les données des autres partitions. Lorsqu'il n'y a qu'une seule partition dans la table, la partition peut être tronquée. Tronquer une partition par la commande suivante :

ALTER TABLE SALES TRUNCATE PARTITION P2;

Tronquer une sous-partition par la commande suivante :

ALTER TABLE SALES TRUNCATE SUBPARTITION P2SUB2;

IV. Fusionner des partitions

Fusionner une partition consiste à fusionner les partitions adjacentes en une seule partition. limites de la partition supérieure Il convient de noter que les partitions ne peuvent pas être fusionnées en partitions avec des limites inférieures. La commande suivante réalise la fusion des partitions P1 et P2 :

ALTER TABLE SALES MERGE PARTITIONS P1,P2 INTO PARTITION P2;

5. Split partition

Divisez une partition pour diviser une partition en deux nouvelles partitions. Après la division, la partition d'origine n'existe plus. Notez que les partitions de type HASH ne peuvent pas être divisées.

ALTER TABLE SALES SBLIT PARTITION P2 AT(TO_DATE('2003-02-01','YYYY-MM-DD')) INTO (PARTITION P21,PARTITION P22);

6. Coalesca

Combiner des partitions consiste à joindre les données de la partition de hachage à d'autres partitions. Lorsque les données de la partition de hachage sont relativement volumineuses, vous pouvez ajouter la partition de hachage puis la rejoindre. il convient de noter que le partitionnement conjoint ne peut être utilisé que dans le partitionnement par hachage. Utilisez la commande suivante pour rejoindre la partition :

ALTER TABLE SALES COALESCA PARTITION;

Seven. Renommez la partition de table

La commande suivante changera P21 en P2

ALTER TABLE SALES RENAME PARTITION P21 TO P2;

Requête associée

Requête inter-partition

select sum( *) from
(select count(*) cn from t_table_SS PARTITION (P200709_1)
union all
select count(*) cn from t_table_SS PARTITION (P200709_2)
);

Requête comment. de nombreuses partitions sont sur la table

SELECT * FROM USER_TAB_PARTITIONS WHERE TABLE_NAME='tableName'

Requête d'informations sur l'index

select object_name,object_type,tablespace_name,sum(value)
from v$segment_statistics
where statistic_name IN ('physical reads','physical write','logical reads')and object_type='INDEX'
group by object_name,object_type,tablespace_name
order by 4 desc
--显示数据库所有分区表的信息:
select * from DBA_PART_TABLES
--显示当前用户可访问的所有分区表信息:
select * from ALL_PART_TABLES
--显示当前用户所有分区表的信息:
select * from USER_PART_TABLES
--显示表分区信息 显示数据库所有分区表的详细分区信息:
select * from DBA_TAB_PARTITIONS
--显示当前用户可访问的所有分区表的详细分区信息:
select * from ALL_TAB_PARTITIONS
--显示当前用户所有分区表的详细分区信息:
select * from USER_TAB_PARTITIONS
--显示子分区信息 显示数据库所有组合分区表的子分区信息:
select * from DBA_TAB_SUBPARTITIONS
--显示当前用户可访问的所有组合分区表的子分区信息:
select * from ALL_TAB_SUBPARTITIONS
--显示当前用户所有组合分区表的子分区信息:
select * from USER_TAB_SUBPARTITIONS
--显示分区列 显示数据库所有分区表的分区列信息:
select * from DBA_PART_KEY_COLUMNS
--显示当前用户可访问的所有分区表的分区列信息:
select * from ALL_PART_KEY_COLUMNS
--显示当前用户所有分区表的分区列信息:
select * from USER_PART_KEY_COLUMNS
--显示子分区列 显示数据库所有分区表的子分区列信息:
select * from DBA_SUBPART_KEY_COLUMNS
--显示当前用户可访问的所有分区表的子分区列信息:
select * from ALL_SUBPART_KEY_COLUMNS
--显示当前用户所有分区表的子分区列信息:
select * from USER_SUBPART_KEY_COLUMNS
--怎样查询出oracle数据库中所有的的分区表
select * from user_tables a where a.partitioned='YES'
--删除一个表的数据是
truncate table table_name;
--删除分区表一个分区的数据是
alter table table_name truncate partition p5;

Tutoriel recommandé : "Tutoriel vidéo Oracle"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn