Blogg

Kompression – en lösning på växande databaser

Databaser har en tendens att växa konstant, trots ständiga rensningsjobb för att underhålla databasen. Ett alternativ till att minska storleken på databasen är att kika närmare på data compression. Och för att underlätta detta erbjuder Microsoft ett verktyg som heter Dynamics Compression Analyzer. Här presenteras några saker som är bra att tänka på i detta sammanhang.

Växande databaser är ett problem som är bekant för de flesta. För ett affärssystem som Microsoft Dynamics AX så kan ibland databasen bli väldigt stor – vi pratar om flera terabyte.

Följderna av detta kan vara att man måste dela upp databasen i flera filer som man sprider ut på diskarna, eller att backuper tar lång tid och är kostsamma. Ett annat scenario är att underhållsjobb för exempelvis statistik och index eller backupjobb tar allt längre tid. Oftast vill man få detta gjort på natten, men när databasen växer kanske inte det längre är möjligt.

En lösning på dessa problem är att minska storleken på databasen. Man är dock sällan i en situation där man kan börja rensa data till höger och vänster. Därmed kan det vara intressant att börja kika på compression av datan, speciellt row eller page compression på index i databasen. Att använda compression innebär att mängden utrymme som krävs för att spara datan minimeras - exempelvis så blir alla kolumner i en tabell som har en bestämd längd ändrade till att ha rörlig längd, så man inte sparar en massa blankt utrymme.

För att compression ska fungera som det är tänkt måste man förstå att man flyttar arbetslasten från diskarna till CPU och RAM. Detta innebär att det är viktigt att göra en initial analys av CPU och RAM, så man säkerställer att den nuvarande hårdvaran klarar av compression på stort antal index. Microsoft har kalkylerat att belastningen på CPU ökar mellan 10-30% (beroende på komprimeringsgrad). Har man en SQL som redan ligger på 60-70% CPU så bör man kanske välja ett annat alternativ. En annan viktig notering är att SQL servern ej får ha startats om under de senaste 30 dagarna, för att logiken ska kunna identifiera index lämpliga för compression.

För att underlätta implementationen av compression erbjuder Microsoft ett verktyg som heter Dynamics Compression Analyzer, som man kan använda för databaser med Dynamics AX. Verktyget är gratis. Verktyget består av ett antal skript som körs under några timmar för att få fram kandidater för row och page compression. När sedan skripten är klara får man fram estimat och kan välja vilken nivå av compression man vill ha. Det är dock viktiga att ta i akt att page compression ibland är mer fördelaktig än row compression.

När man väl valt vilken nivå av compression man vill ha, så kör man själva compression-skriptet. Detta tar en stund att köra: hos en av våra kunder tog det 14 timmar att köra det på en 1,2 TB databas. När väl compression var klar hade dock 49% av utrymmet sparats: från 1,2 TB till ca 670 GB. Backuper gick från 220 GB till 155 GB (efter backup compression, vilket är ett helt annat tema) och tidsåtgången att ta en full backup halverades. Page Life Expectancy (tid SQL kan jobba i minnet istället för att gå till disk) gick från 8800 till 25000, vilket var en klar förbättring.

Vi hade kunnat sluta där, men ett viktigt tillägg är att trots att man fått mycket ledigt utrymme i databasfilen bör man inte krympa den. Om man i framtiden väljer att uppgradera till en annan version av AX så kommer komprimerade index att skrivas över och skapas upp på nytt okomprimerat vilket kommer leda till att innehållet i databasfilen blir mycket större och kommer behöva utrymmet man komprimerat.

Man kan givetvis när som helst rulla tillbaka komprimeringen och det inkluderas skript för det också.

Läs mer om data compression här: https://blogs.msdn.microsoft.com/nav/2011/07/21/sql-server-data-compression-and-microsoft-dynamics/

Gå in på Accigo.se/EKG för att lära dig mer om vad vi på Accigo kan göra för din IT-miljö.

Olle Kärnekull - olof.karnekull@accigo.se - Försäljning

Fredrik Hellstenius - fredrik.hellstenius@accigo.se - Solution Architect

Måns Rantzer - mans.rantzer@accigo.se - IT Infrastructure Consultant 

Gustav Jansson - gustav.jansson@accigo.se - IT Infrastructure Consultant

Prenumerera på bloggen

Få uppdateringar om nya inlägg

Vill du veta mer om våra pågående projekt och aktuella branschtrender? Vi berättar även om våra olika erbjudanden och sättet vi arbetar på för att hjälpa våra kunder att digitalisera sina verksamheter.

Fyll i din e-post för att prenumerera

Relaterat innehåll

Läs mer och låt dig inspireras

I vår kunnskapsbank har vi samlet vår beste innsikt fra det nordiske markedet. Her finner du vår svenske blogg og guider, samt våre norske kundecase.

Til bloggen