Oracle 12c Étude des performances en mémoire sur l’infrastructure Dell
Résumé: Notre charte est de fournir des solutions qui simplifient l’informatique en fournissant des solutions de base de données, de développement personnalisé, de centres de données dynamiques, de calcul flexible, de haute disponibilité, de calcul haute performance et de solutions de virtualisation. ...
Symptômes
S’applique à :
Base de données Oracle : 12.1.0.2
Étude de cas :
L’option en mémoire Oracle 12c est introduite dans l’ensemble de correctifs 12.1.0.2. Cette fonctionnalité stocke des copies de tables et de partitions, ainsi que d’autres objets de base de données au format en colonnes, qui est le magasin de colonnes IM. Le magasin de colonnes IM est une zone facultative de SGA qui ne remplace pas le cache de mémoire tampon. Au lieu de cela, les deux zones de mémoire peuvent stocker les mêmes données dans des formats différents.
IM COLUMN Store performance Benefits:
Si les objets de base de données se trouvent dans un magasin de colonnes IM, la base de données peut effectuer des analyses, des jonctions et des agrégations beaucoup plus rapidement que sur disque. Lorsque vous êtes en mémoire, il offre plus de performances
- Interrogation d’un petit nombre de colonnes à partir d’un grand nombre de colonnes
- Requêtes analysant un grand nombre de lignes et appliquant des filtres
- Requêtes qui appliquent des données agrégées
- Requêtes qui joignent une petite table à une grande table (table de faits)
Étude 1 :
Option En mémoire Oracle 12c testée sur l’infrastructure Dell.
Système d’exploitation : RHEL 6.5
Base de données : 12.1.0.2
Mémoire : 512 Go
Taille SGA : 450 Go
Taille en mémoire : 300 Go/S
Taille de la base de données : 1 To
J’active l’option en mémoire à l’aide de inmemory_size paramètre.
Sql> modifier le système set inmemory_size=300g scope=spfile ;
Elle ne prendra effet qu’après le redémarrage de l’instance.
Nous pouvons trouver la taille de la mémoire en utilisant
SQL> show paramètre en mémoire ;
| NOM | TYPE | VALEUR |
|---|---|---|
| inmemory_clause_default | string | |
| inmemory_force | string | PAR DÉFAUT |
| inmemory_max_populate_servers | Entier | 30 |
| inmemory_query | string | ACTIVER |
| inmemory_size | grand entier | 300 Go/S |
| inmemory_trickle_repopulate_servers_percent | Entier | 10 |
| optimizer_inmemory_aware | Booléen | TRUE |
Tableau 1 : Paramètre SQL en mémoire
Ensuite, créez un tablespace à l’aide de l’attribut En mémoire
| Sql> create tablespace quest datafile '+DATA' taille 10g par défaut en mémoire ; |
Nous pouvons modifier à tout moment les paramètres en mémoire à l’aide de l’instruction alter
| Sql> alter tablespace quest DEFAULT INMEMORY MEMCOMPRESS FOR CAPACITY HIGH ; |
Une fois que vous pouvez créer n’importe quelle table sous ce tablespace, elle sera automatiquement stockée dans le magasin de colonnes IM.
En utilisant BMF7.0, nous pouvons charger les données dans un tablespace particulier. Si nous activons le paramètre inmemory au niveau du tablespace avant le chargement, cela prendra moins de temps que sans attribut inmemory.
Après le chargement des données, nous pouvons utiliser les différentes techniques de compression et niveaux de priorité pour remplir les données dans le magasin de colonnes IM. Les objets sont insérés dans l’espace IM Column Store soit dans une liste hiérarchisée immédiatement après l’ouverture de la base de données, soit une fois qu’ils ont été analysés (interrogés) pour la première fois.
Voici les résultats de mon exécution par rapport à Dell Infra Structure.
Nous pouvons compresser et remplir les données dans le magasin de colonnes IM à l’aide de différentes méthodes.
Le tableau h_partsupp qui contient 59,59 Go de données d’origine. Nous pouvons utiliser différentes techniques de compression pour remplir les objets de la table dans le magasin de colonnes IM et voir le taux de compression.
| Compression Techniques | Rapport | Données compressées |
|---|---|---|
| Memcompress for query hight | 1.29 | 31.08 |
| la requête hauteMemcompress for query Low | 1,67 | 35.64 |
| Memcompress for Capacity low | 3.04 | 19.63 |
| Memcompress for capacity high | 4.88 | 12.21 |
| Pas de MemCompress | 1.17 | 50.86 |
Tableau 2 : Taux
des techniques de compression Après cela, nous pouvons lancer une requête sur la table et voir les résultats des performances en mémoire et sans en mémoire.
Sql> select max (PS_SUPPLYCOST) dans h_partsupp ;
| Compression Technique | Sec |
|---|---|
| Memcompress for query high | 15.97 |
| Memcompress for query Low | 18 |
| Memcompress for Capacity low | 18.13 |
| Memcompress for capacity high | 99.86 |
| Pas de mémoire | 2961 |
Tableau 3 : Techniques de compression Temps
En conséquence, en mémoire offre plus de performances (185 fois) par rapport à sans en mémoire.
Etude 2 :
Le tableau h_part qui contient des données d’origine de 29,27 Go. Nous pouvons utiliser différentes techniques de compression pour remplir les objets de la table dans le magasin de colonnes IM et voir le taux de compression.
| Compression Techniques | Rapport | Données compressées |
|---|---|---|
| Memcompress for query high | 3.32 | 8.43 |
| Memcompress for query Low | 2.77 | 10.09 |
| Memcompress for Capacity low | 5.77 | 4.85 |
| Memcompress for capacity high | 7.96 | 3.51 |
| NO MemCpmpress | 1.24 | 22.49 |
Tableau 4 : Taux
des techniques de compression Après cela, nous pouvons lancer une requête sur la table et voir les résultats des performances en mémoire et sans en mémoire.
Sql> select P_NAME à partir de quest.h_part où P_TYPE='SMALL BRUSHED NICKEL' ;
| Compression Techniques | SEC |
|---|---|
| Memcompress for query high | 6.04 |
| Memcompress for query Low | 6.26 |
| Memcompress for Capacity low | 8.86 |
| Memcompress for Capacity high | 19 |
| Pas de mémoire | 30 |
| NO MemCompress | 9.10 |
Cause
Voir ci-dessus
Résolution
Voir ci-dessus