[SQL Server 2008 Data Compression]: Che cosa comprimere?
Allo scorso workshop UGISS di Roma (qui sono disponibili le slide e le demo) ho parlato, tra le altre cose, di compressione dei dati.
La compressione dei dati, come noto, è una funzionalità in grado di far risparmiare risorse in termini di IO e, conseguentemente, permette un utilizzo più efficiente della RAM. Tutto questo viene pagato con qualche punto percentuale di CPU soprattutto abilitando la compressione a livello di pagina. In circostanze tutt'altro che rare, come ho dimostrato nel workshop tenutosi a Roma, la minor quantità di pagine a cui dover accedere contribuisce anche a ridurre l'utilizzo della CPU e, quindi, l'efficenza generale del sistema sotto tutti i punti di vista.
Chi ha avuto modo di giocare con la data compression in SQL Server 2008 avrà certamente utilizzato la sp_estimate_data_compression_savings che permette di conoscere, per ciascuna tabella o indice, una stima sul fattore di compressione atteso. Paul Nielsen ha creato due stored procedure molto utili in tema di compressione. Con la prima (db_compression_estimate) vengono analizzate tutte le tabelle e tutti gli indici di un database ed un report suggerisce il livello di compressione migliore (row o page). Con la seconda (db_compression) vengono compresse tutte le pagine e tutti gli indici dove le stime precedenti indicano un risparmio di spazio pari o superiore ad una determinata soglia passata come argomento.
Senz'altro molto utili... 