Dans Oracle, le partitionnement de table fait référence au stockage physique des données de la table dans plusieurs espaces table lorsque les données de la table continuent d'augmenter, c'est-à-dire que le partitionnement de la table peut partitionner la table, l'index ou les tables organisées en index ; sont ensuite subdivisés en segments. Les segments de ces objets de base de données sont appelés partitions, ce qui améliore la gérabilité, les performances et la disponibilité.
L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.
Table partitionnée : lorsque la quantité de données dans la table continue d'augmenter, la vitesse d'interrogation des données ralentira et les performances de l'application diminueront à ce moment-là. partitionner la table.
Une fois la table partitionnée, la table logique est toujours une table complète, mais les données de la table sont physiquement stockées dans plusieurs espaces de table (fichiers physiques), de sorte que lors de l'interrogation des données, elles ne seront pas analysées à chaque fois. tableau entier.
Le rôle spécifique du partitionnement de table
La fonction de partitionnement de table d'Oracle apporte de grands avantages à diverses applications en améliorant la gérabilité, les performances et la disponibilité. De manière générale, le partitionnement peut grandement améliorer les performances de certaines requêtes et opérations de maintenance. De plus, le partitionnement peut grandement simplifier les tâches de gestion courantes et constitue un outil clé dans la création de systèmes de données de plusieurs gigaoctets ou de systèmes à ultra haute disponibilité.
La fonction de partitionnement peut en outre subdiviser les tables, les index ou les tables organisées en index en segments. Les segments de ces objets de base de données sont appelés partitions. Chaque partition possède son propre nom et peut sélectionner ses propres caractéristiques de stockage. Du point de vue d'un administrateur de base de données, un objet partitionné comporte plusieurs segments, et ces segments peuvent être gérés collectivement ou individuellement. Cela donne à l'administrateur de base de données une flexibilité considérable lors de la gestion des objets partitionnés. Cependant, du point de vue de l'application, une table partitionnée est identique à une table non partitionnée et aucune modification n'est requise lors de l'accès à une table partitionnée à l'aide de commandes SQL DML.
Quand utiliser une table de partition, le conseil officiel est :
a La taille de la table dépasse 2 Go.
b. La table contient des données historiques et de nouvelles données sont ajoutées aux nouvelles partitions.
Avantages et inconvénients du partitionnement de table
Avantages :
a. Améliorez les performances des requêtes : les requêtes sur les objets partitionnés ne peuvent rechercher que les partitions qui vous intéressent, améliorant ainsi la vitesse de récupération.
b. Disponibilité améliorée : si une partition de la table échoue, les données de la table dans les autres partitions sont toujours disponibles.
c. Maintenance facile : Si une partition de la table tombe en panne et que les données doivent être réparées, seule la partition peut être réparée.
d. E/S équilibrées : différentes partitions peuvent être mappées sur des disques pour équilibrer les E/S et améliorer les performances globales du système.
Inconvénients :
En ce qui concerne les tables de partition, il n'existe aucun moyen de convertir directement les tables existantes en tables de partition. Cependant, Oracle propose la fonction de redéfinition en ligne des tables.
Plusieurs types et méthodes de fonctionnement des partitions de table
1 Partitionnement de plage (plage) valeur max
Le partitionnement de plage mappe les données sur chaque partition en fonction de la plage. Cette plage est déterminée par la clé de partition que vous spécifiez lors de la création de la partition. . Cette méthode de partitionnement est la plus couramment utilisée et la clé de partition utilise souvent la date. Par exemple : vous pouvez partitionner vos données de ventes par mois.
Lorsque vous utilisez le partitionnement par plage, veuillez tenir compte des règles suivantes :
a. Chaque partition doit avoir une clause VALUES LESS THEN, qui spécifie une valeur limite supérieure qui n'est pas incluse dans la partition. Tous les enregistrements dont la valeur de clé de partition est égale ou supérieure à cette limite supérieure seront ajoutés à la partition immédiatement supérieure.
b. Toutes les partitions, sauf la première, auront une valeur limite inférieure implicite. Cette valeur est la valeur limite supérieure de la partition précédente de cette partition.
c. Si la plage de certains enregistrements ne peut pas encore être prédite, vous pouvez créer une partition maxvalue, et tous les enregistrements qui ne se trouvent pas dans la plage spécifiée seront stockés dans la partition où se trouve maxvalue.
Exemple 1 : Supposons qu'il existe une table de test avec 200 000 lignes de données. Nous partitionnons cette table par identifiant. Chaque partition stocke 100 000 lignes dans un espace table distinct, de sorte que le fichier de données puisse s'étendre sur plusieurs éléments physiques. disques. Voici le code pour créer des tables et des partitions, comme suit :
----Créez d'abord plusieurs espaces de table de test
sys@ORCL>create tablespace test_ts01 datafile '/home/oracle/test_01.dbf' size 32m extent management local autoallocate; Tablespace created. sys@ORCL>create tablespace test_ts02 datafile '/home/oracle/test_02.dbf' size 32m extent management local autoallocate; Tablespace created. sys@ORCL>create tablespace test_ts03 datafile '/home/oracle/test_03.dbf' size 32m extent management local autoallocate; Tablespace created.
----Créez une table de partition de test
create table test ( id number not null, first_name varchar2(30) not null, last_name varchar2(30) not null, phone varchar2(30) not null, email varchar2(80), status char(1), constraint test_id primary key (id) ) partition by range (id) ( partition test_part1 values less than (100000) tablespace test_ts01, partition test_part2 values less than (200000) tablespace test_ts02, partition test_part3 values less than (maxvalue) tablespace test_ts03 );
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!