ATT ÖVERVAKA INNEHÅLL DATABASENS STORLEK Databasens storlek kan avläsas i Enterprise Manager • Finns tillräckligt utrymme för tillväxt? • Kan vi ge tillbaka outnyttjat utrymme till filsystemet? Rapporten Disk Usage Övervakning av databasens storlek När databasen växer Datalagringsenheter Krympning / defragmentering av databasen Database options - Inställningar för databasen (Högerklicka på databasen - Reports - Standard Reports - Disk Usage) Med sp_helpdb ser vi bara storleken på databasfilerna. Rapporten visar hur mycket som är använt! Ger tips om det finns behov av nya filer, om vi kan krympa filer mm. Om det inte fungerar, kanske det krävs att IIS är installerad. Tommy Löfqvist Institutionen Sven för Kommunikation Åke Lnu/DFM Johansson o design 1 Tommy Löfqvist DATALAGRINGSENHETER - DATA PAGES, EXTENT Institutionen Sven för Kommunikation Åke Lnu/DFM Johansson o design NÄR DATABASEN 2 VÄXER 96 byte När behövs mer än en primär data och loggfil? Data (ej text och image) lagras i form av pages (sidor) 8Kbyte. Sidorna lagras i sin tur i extent som består av 8 sidor, dvs 64KB. max 8060 byte I/O operationer läser data i form av datapages, dvs 8KB i taget. o Databasen kan vara för stor för en fil o Prestanda kan kräva flera filer. Det går snabbare att läsa från tabeller som ligger på var sin disk. o Underhåll (t ex backup) kan kräva flera filer Två alternativ när du behöver mer data eller loggutrymme • Utöka befintliga filer T ex utöka C:\DATA\kundData.mdf från 100MB till 300MB. Gör databasen så stor att autogrowth undviks, vilket är mycket resurskrävande. Från början blandas tabeller och index i samma extent, när tabellerna växer organiseras data så att en tabell får ett eget extent. • Lägg till fler filer (ev på annan drive) T ex den befintliga filen C:\DATA\kundData.mdf (100MB) kompletteras med den nya filen D:\DATA\kundData2.ndf (200MB) Konvention: .ndf används fr o m andra datafilen Båda operationerna kan göras med ALTER DATABASE eller grafiskt i Management Studio Tommy Löfqvist Institutionen Sven för Kommunikation Åke Lnu/DFM Johansson o design 3 Tommy Löfqvist Institutionen Sven för Kommunikation Åke Lnu/DFM Johansson o design 4 1 KRYMPA DATABASER - SHRINK DATABASE När data raderas behåller filen sin storlek! - Slöseri med diskutrymme! Före SHRINK: Fragmenterad databasfil: 50 MB Efter SHRINK DEFAULT Olika sätt att krympa filer Krympa databaser med Management Studio 100 MB 1. Automatic Options EMPTYFILE Autoclose (False) • Stänger databasen efter sista användaren • Bör vara ON för databaser som accessas av applikationer som ofta ansluter och avslutar anslutningar till SQL Server Auto_Create_Statistics Man kan krympa (SHRINK) både databasen och transaktionsloggen Autoshrink Auto_Update_Statistics (False) Uppdaterar statistik när ett tröskelvärde överskridits DBCC = Database Console Commands DATABASE OPTIONS (False) • Krymper databasen automatiskt när mer än 25% är oanvänt • Gäller även transaktionsloggar, efter backup • Tar mer resurser än autogrow Krymper DBC och lämnar 5% kvar dbc_data1 krymps nu till 5MB DBC_data1 kan nu tas bort med MStudio eller "ALTER DATABASE" 5 Institutionen Sven för Kommunikation Åke Lnu/DFM Johansson o design (True) Se bilaga sid 11 • Statistik skapas automatiskt på kolumner som används i en WHERE-sats • Bättre beslut av Query Optimizer Krympa filer med TSQL Tommy Löfqvist Kan ändras med: • Management Studio (inte riktigt allt) • Kommandot: ALTER DATABASE - SET … TRUNCATEONLY ----- #1 Options är indelade i olika grupper NOTRUNCATE Flyttar data till annan fil i filgruppen. Endast tomma filer kan tas bort. DBCC SHRINKDATABASE (DBC, 5) DBCC SHRINKFILE (dbc_data1, 5) DBCC SHRINKFILE (DBC_data1, EMPTYFILE) OPTIONS Database options påverkar olika aspekter hos databasen. Tommy Löfqvist För fullständig beskrivning se Books OnLine! Institutionen Sven för Kommunikation Åke Lnu/DFM Johansson o design #2 KOMMANDON 6 FÖR STATE OPTIONS Alla databasoptions kan sättas med TSQL ALTER DATABASE databas SET <optionspec> [,…n] [WITH <termination>] 2. SQL Options Collation Bestämmer teckenuppsättning och sorteringsordning. Finnish_Swedish_CI_AS är lämplig här Recovery models Bestämmer graden av återställbarhet (recovery) efter en crash Simple | Full | Bulked logged kan väljas. Compatibility Level Anger kompabilitet med äldre versioner. SQL Server 2008 har 100, SQL Server 2012 har 110 3. Miscellaneous Options Några exempel Sätt offline ALTER DATABASE dbc SET OFFLINE (alt. ONLINE) Sätt read_only ALTER DATABASE dbc SET READ_ONLY (alt. READ_WRITE) Flaggor som bestämmer hur olika SQL-satser ska tolkas 4. State Options Sätt single user mode ALTER DATABASE dbc SET SINGLE_USER Styr vem som kan använda databasen och vilka operationer dessa kan göra. Dessa kan sättas i Management Studio men kommandon ger fler möjligheter. Single user mode krävs för vissa kommandon DataBase Read-Only DataBase State Encryption Enabled Restrict Access Tommy Löfqvist - (alt. RESTRICTED_USER | MULTI_USER) True | False ONLINE, OFFLINE or SUSPECT True | False MULTI_USER | SINGLE_USER | RESTRICTED USER Institutionen Sven för Kommunikation Åke Lnu/DFM Johansson o design 7 Tommy Löfqvist Institutionen Sven för Kommunikation Åke Lnu/DFM Johansson o design 8 2 KOMMANDON FÖR STATE OPTIONS - TERMINATION SAMMANFATTNING OPTIONS Många state options kan inte sättas då databasen används av okvalificerade användare. Data lagras och läses i form av data pages (datasidor) om 8Kbyte Termination options bestämmer vad som ska hända med dessa vid ALTER DATABASE kommandot. Databasens storlek kan övervakas med hjälp av standardrapporter i Management Studio ROLLBACK AFTER heltal [seconds] | ROLLBACK IMMEDIATE | ROLLBACK NO_WAIT Exempel Om dba behöver göra "viktiga" kommandon som kräver single user mode måste inloggade användare kastas ut. Det kan man bara göra med kommando. 1. Kasta "snällt" ut vanliga användare När data raderas krymper inte den fysiska filen. Krympning av databasfil eller databas gör vi med DBCC eller inifrån Mstudio Ett stort antal OPTIONS kan ställas in i MStudio eller med TSQLkommandot ALTER DATABASE - SET Option Nu är de "ur vägen" så att man kan göra "viktiga" inställningar Optimeraren använder statistiken för att bedöma om index ska utnyttjas ALTER DATABASE NorthWind SET AUTO_UPDATE_STATISTICS ON, AUTO_CREATE_STATISTICS ON Tommy Löfqvist Filer kan också förstoras Datafil måste vara tom innan den kan raderas (DBCC - EMPTYFILE) ALTER DATABASE NorthWind SET RESTRICTED_USER WITH ROLLBACK AFTER 60 SECONDS 2. Man kan behöva lägga till fler filer då databasen växer, när man vill öka prestanda eller har speciella backupönskemål Vissa options kräver att databasen sätts i "single user mode" Med SET … WITH ROLLBACK … kan andra användare "kastas ut” 9 Institutionen Sven för Kommunikation Åke Lnu/DFM Johansson o design Tommy Löfqvist Institutionen Sven för Kommunikation Åke Lnu/DFM Johansson o design 10 STATISTIKEN SQL Server skapar som default statistik över innehållet i tabellerna för att kunna besluta om index ska utnyttjas eller ej. Fördelning av Lön i Personaltabellen Frekvens (%) 30 OBS! Att läsa via index kräver att man läser i både index och data. För att det ska löna sig ska svaret ge mindre än 10% av posterna, dvs man ska ha god SELEKTIVITET 0 10 20 30 40 50 60 Lön (*1000 kr) SELECT Namn, Lön FROM Personal WHERE Lön > 60000 SELECT Namn, Lön FROM Personal WHERE Lön < 60000 Statistiken ger: Statistiken ger: God selektivitet (<10%) Dålig selektivitet: Optimeraren beslutar: Optimeraren beslutar: => Det lönar sig att använda index till frågan Det lönar sig inte att använda index till frågan ”Nästan alla” Tillbaka Tommy Löfqvist Institutionen Sven för Kommunikation Åke Lnu/DFM Johansson o design 3