Maison  >  Article  >  base de données  >  Qu'est-ce qu'une table de partition dans Oracle

Qu'est-ce qu'une table de partition dans Oracle

WBOY
WBOYoriginal
2022-06-07 18:38:495310parcourir

Dans Oracle, une table de partition consiste à décomposer une grande table en plusieurs petites tables de partition gérables. Chaque table de partition est indépendante les unes des autres et constitue ensemble une table complète, logiquement, il n'y a qu'une seule table ou un seul index. mais physiquement, cette table ou index peut être constitué de plusieurs partitions physiques. Les tables de partition peuvent être divisées en partitions de plage, partitions de liste, partitions de hachage et partitions combinées.

Qu'est-ce qu'une table de partition dans Oracle

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

Qu'est-ce qu'une table de partition dans Oracle

(1) Qu'est-ce qu'une partition

Dans la base de données Oracle, afin d'améliorer la gérabilité, la maintenabilité et les performances des grandes tables/grands index, Oracle a introduit le mécanisme de table de partition, une grande table/index peut être décomposé en plusieurs petites partitions gérables. Plusieurs partitions sont relativement indépendantes et ont des structures de stockage indépendantes, qui constituent ensemble une table/index complet. Le partitionnement est transparent pour l'application, c'est-à-dire que pour l'application accédant à la base de données, il n'y a logiquement qu'une seule table ou index (équivalent au fait que l'application ne voit toujours qu'une seule table ou index), mais physiquement cette table ou cet index peut être constitué de plusieurs Composés de partitions physiques.

(2) Quand le partitionnement est-il requis ?

Le site officiel d'Oracle recommande d'utiliser des tables partitionnées dans les situations suivantes :

1. Lorsque la quantité de données de la table est supérieure à 2 Go, le partitionnement doit être envisagé ; Les nouvelles données sont ajoutées à la dernière partition utilisée pour stocker les données historiques.

(3) La différence entre une table divisée et une table de partition

Afin de disperser les données de grandes tables/index, une autre façon consiste à diviser la table divisée en décomposant une grande table en plusieurs tables selon. certaines règles. Une table d'entité avec un espace de stockage indépendant. Par exemple, la table client customer peut être divisée en deux tables, l'une pour stocker les clients personnels customer_person et l'autre pour les clients d'entreprise customer_company. Les sous-tables sont complètement indépendantes et sont logiquement plusieurs tables différentes, tandis que la table de partition est physiquement une seule table. Les tables partitionnées sont transparentes pour les applications et faciles à gérer et à entretenir, tandis que les sous-tables ne sont pas faciles à gérer et à entretenir. (4) Types de tables de partition

Le partitionnement de base fait référence à une table de partition qui utilise une couche de partitionnement (partitionnement par plage, partitionnement par liste, partitionnement par hachage).

Si une table de partition est partitionnée en plusieurs niveaux, on parle de partitionnement combiné.

    Table partitionnée par plage
  • (1) Clé de partition
  • Le partitionnement consiste à diviser une très grande table ou un index en plusieurs petites parties gérables. Les tables partitionnées sont partitionnées par des clés de partition. La clé de partition détermine vers quelle partition chaque ligne de données de la table partitionnée circule. Chaque ligne de données d'une table partitionnée est implicitement attribuée à une partition en fonction de la clé de partition.

    (2) Partitionnement de plage
  • Le partitionnement de plage divise les partitions en fonction de la clé de partition et en fonction des différentes valeurs de plage​​des lignes de données tombant dans la clé de partition.

    (3) Cas 1 (la clé de partition est une seule colonne)
  • CREATE TABLE time_range_sales
         ( prod_id        NUMBER(6)
           , cust_id        NUMBER
           , time_id        DATE
           , channel_id     CHAR(1)
           , promo_id       NUMBER(6)
           , quantity_sold  NUMBER(3)
           , amount_sold    NUMBER(10,2)
         )
        PARTITION BY RANGE (time_id)
        (PARTITION SALES_1998 VALUES LESS THAN (TO_DATE('01-JAN-1999','DD-MON-YYYY')),
         PARTITION SALES_1999 VALUES LESS THAN (TO_DATE('01-JAN-2000','DD-MON-YYYY')),
         PARTITION SALES_2000 VALUES LESS THAN (TO_DATE('01-JAN-2001','DD-MON-YYYY')),
         PARTITION SALES_2001 VALUES LESS THAN (MAXVALUE)
        );
  • 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