Compressez vos données Oracle... sans changer votre hardware !
La taille de vos base augmente de façon inquiétante. La taille de vos sauvegardes de bases Oracle explose. Vos liens DataGuard entre sites distants saturent... Faut-il acheter du hardware complémentaire ?
Oracle incorpore dans sa base Enterprise Edition une option qui vaut le détour : ADVANCED COMPRESSION. Cette option apporte 4 fonctionnalités fort utiles :
- Compression des données relationnelles
- Compression des données non structurées
- Compression des backups
- Compression réseau
Reprenons ces fonctionnalités une par une.
1. Compression des données relationnelles
Dans la version 9iR2 EE, Oracle a introduit une compression des données stockées dans les blocs Oracle. Elle a été ensuite nommée BASIC (en opposition avec le mode OLTP introduit dans la version 11g). Cette fonctionnalité a apporté de grands gains d'espace pour les bases Datawarehouse. Le mode BASIC, toujours disponible sans option dans l'Edition Enterprise, comporte quelques limites :
- seules peuvent être compressées des données chargées en "Bulk Load", ex. SQL Loader en mode Direct, INSERT avec le hint APPEND
- les lignes insérées avec un INSERT normal ou modifiées avec un UPDATE ne pouvaient pas être compressées
- les lignes modifiées sont "décompressées"
- les lignes insérées avec un INSERT normal ou modifiées avec un UPDATE sont désormais également compressées
- amélioration du temps d'exécution des requêtes (moins d'I/O, Buffer Cache mieux utilisé)
- diminution du volume par un facteur 2 à 3
Comment cela fonctionne-t-il ?
- les lignes sont toujours compressées au niveau du bloc
- le mode est spécifié au niveau de la table ou de la partition
- c'est complètement transparent pour les applications
- un nouvel algorithme (mode "batch") a été mis en oeuvre
- pas d'incidence pour les Reads (sauf même des améliorations)
- Etat 1 (Empty Block) : le bloc est vide
- Etat 2 (Initially Uncompressed Block) : tous les INSERT (ou UPDATE) effectués dans ce bloc ont fait dépasser le seuil de remplissage autorisé (en relation avec PCTFREE) et le dernier INSERT (ou UPDATE) déclenche la compression du bloc
- Etat 3 (Compressed Block) : les données ont été compressées, il y a à nouveau de la place dans le bloc pour des INSERT (ou des UPDATE)
- Etat 4 (Partially Compressed Block) : les nouveaux INSERT(ou UPDATE) effectués dans ce bloc ont à nouveau fait dépasser le seuil de remplissage autorisé (en relation avec PCTFREE) et le dernier INSERT (ou UPDATE) déclenche à nouveau la compression du bloc
- Etat 5 (Compressed Block) : les données ont été à nouveau compressées, il y a à nouveau de la place dans le bloc pour des INSERT (ou des UPDATE)
-- OLTP Table Compression Syntax:
CREATE TABLE emp (
emp_id NUMBER
, first_name VARCHAR2(128)
, last_name VARCHAR2(128)
) COMPRESS FOR OLTP;
-- Direct Load Compression Syntax (default):
CREATE TABLE emp (
emp_id NUMBER
, first_name VARCHAR2(128)
, last_name VARCHAR2(128)
) COMPRESS [BASIC];
La vue DBA_TABLES précise dans les colonnes COMPRESS et COMPRESS_FOR l'état de compression d'une table.
Estimation du gain lié à la compression ?
Cet outil est téléchargeable : Compression Advisor Voici quelques exemples de bénéfices possibles avec cette option :
En résumé : un facteur de compression de 2 à 4 !!!! Voilà de quoi soulager les baies SAN saturées... 2. Compression des données non structurées Oracle fournit également des fonctionnalités appréciables pour la compression de données don structurées :
- Déduplication de BLOB (une seule image sur disque pour des fichiers dupliqués : gain d’espace et de Write/Copy; pas de ralentissement sur les lectures , et améliorations même souvent)
- Compression du contenu de BLOB (compression couramment constatée : facteur 2 à 3)
- Fonctionnalités appropriées pour la Gestion de Contenu, les Mails et les applications d'archivage
3. Compression des backups
Oracle ADVANCED COMPRESSION impacte les Backups sous deux aspects : a. Exports DATA PUMP
- La compression des méta-données est disponibles depuis Oracle 10g
- La compression des données est disponible depuis Oracle 11g
- Pas besoin de décompresser pour effectuer un import
- Gain d’espace : réduction de près de 75% d’espace
- Utilisation transparente pour DataPump
b. Sauvegardes RMAN
- Réduction drastique des volumes de sauvegardes
- Ne nécessite pas de décompression avant de lancer le RESTORE
- 3 niveaux de compressions
-LOW (11.2) : le plus rapide, le moins gourmant en CPU -MEDIUM (11.1) : équilibre entre consommation de CPU et taux de compression -HIGH (11.2) : le plus efficace, consommation de CPU plus importante
4. Compression réseau Oracle ADVANCED COMPRESSION impacte l'utilisation Réseau comme suit :
- Compression du traffic réseau entre une base primaire et une base DataGuard (flux Redo Log)
- Réseaux à faible bande passante (
- Réseaux à large bande passante (>100 Mbps) : la compression ne réduira pas le temps de transmission; elle réduira la consommation réseau (jusqu’à 35%)
En résumé : l'option ADVANCED COMPRESSION apporte de nombreuses fonctionnalité qui peuvent être fort utiles dans certains contextes.