Tömörítés becslése - Compression Advisor
- by lsarecz
Az Oracle Database 11g verziójától már OLTP adatbázisok is hatékonyan tömöríthetok az Advanced Compression funkcióval. Nem csak a tárolandó adatok mennyisége csökken ezáltal felére, vagy akár negyedére, de az adatbázis teljesítménye is javulhat, amennyiben I/O korlátos a rendszer (és általában az). Hogy pontosan mekkora tömörítés várható az Advanced Compression bevezetésével, az kiválóan becsülheto a Compression Advisor eszközzel. Ez nem csak az OLTP tömörítés mértékét, de 11gR2 verziótól kezdve a HCC tömörítés arányát is becsülni tudja, amely Exadata Database Machine, Pillar Axiom illetve ZFS Storage alkalmazásával érheto el. A HCC tömörítés becsléséhez csak 11gR2 adatbázisra van szükség, nem kell hozzá a speciális célhardver (Exadata, Pillar, ZFS). 
    
  A Compression Advisor valójában a DBMS_COMPRESSION package használatával érheto el. A package-hez tartozik 6 konstans, amellyel a kívánt tömörítési szintek választhatók ki:  
    
   
     
       
         
          Constant 
          Type 
          Value 
          Description 
         
       
       
         
           
            COMP_NOCOMPRESS 
           
           
            NUMBER 
           
           
            1 
           
           
            No compression 
           
         
         
           
            COMP_FOR_OLTP 
           
           
            NUMBER 
           
           
            2 
           
           
            OLTP compression 
           
         
         
           
            COMP_FOR_QUERY_HIGH 
           
           
            NUMBER 
           
           
            4 
           
           
            High compression level for query operations 
           
         
         
           
            COMP_FOR_QUERY_LOW 
           
           
            NUMBER 
           
           
            8 
           
           
            Low compression level for query operations 
           
         
         
           
            COMP_FOR_ARCHIVE_HIGH 
           
           
            NUMBER 
           
           
            16 
           
           
            High compression level for archive operations 
           
         
         
           
            COMP_FOR_ARCHIVE_LOW 
           
           
            NUMBER 
           
           
            32 
           
           
            Low compression level for archive 
operations 
           
         
       
     
     
      A GET_COMPRESSION_RATIO tárolt eljárás elemzi a tömöríteni kívánt táblát. Mindig csak egy táblát, vagy opcionálisan annak egy partícióját tudja elemezni úgy, hogy a tábláról készít egy másolatot egy külön erre a célra kijelölt/létrehozott táblatérre. Amennyiben az elemzést egyszerre több tömörítési szintre futtatjuk, úgy a tábláról annyi másolatot készít. A jó közelítésu becslés (+-5%) feltétele, hogy táblánként/partíciónként minimum 1 millió sor legyen. 
      11gR1 esetében még a DBMS_COMP_ADVISOR csomag GET_RATIO eljárása volt használatos, de ez még nem támogatta a HCC becslést. 
     
    Érdemes még megnézni és kipróbálni a Tyler Muth blogjában publikált formázó eszközt, amivel a compression advisor kimenete alakítható jól értelmezheto formátumúvá. 
    Végül összegezném mit is tartalmaz az Advanced Compression opció, mivel gyakran nem világos a felhasználóknak miért kell fizetni: 
      
     
       
        Data Guard Network Compression 
       
       
        Data Pump Compression (COMPRESSION=METADATA_ONLY
          does not require the Advanced Compression option) 
       
       
        Multiple RMAN Compression Levels (RMAN DEFAULT COMPRESS does not require the Advanced
          Compression option) 
       
       
        OLTP Table Compression 
       
       
        SecureFiles Compression and Deduplication 
       
    
    Ez alapján RMAN esetében például a default compression (BZIP2) szint ingyen
    használható, viszont az új ZLIB Advanced Compression opciót igényel.
    A ZLIB hatékonyabban használja a CPU-t, azaz jóval gyorsabb, viszont
    kisebb tömörítési arány érheto el vele.