Check instant file initialization

Oopps! Upgrade your browser pretty please. Oopps! Upgrade your browser pretty please.

Som vi skrivit om tidigare så finns det möjlighet att slippa den tid det tar för datafilen att växa genom att skippa den sk nollutfyllnaden. Detta kan man läsa mer om i detta inlägg: http://www.sqlservice.se/sv/start/blogg/instant-file-initialization.aspx

Om man verkligen vill kontrollera om detta fungerar och om det är nödvändigt att göra några förändringar, dvs man är osäker om det fungerar med nuvarande inställningar är frågan “Hur vet man det”. Jo, genom att slå på traceflaggorna 3004 och 3605,  skapa en testdatabas, slå av traceflaggorna och ta bort databasen. Därefter kontrollerar man SQL Servers senaste errorlog och i början av densamme ser man hur detta fungerar.

 Här ser man att den sk nollutfyllnaden av datafilen mdf insträffar och detta går alltså att undvika och som man förstås bör fixa av de orsaker som Janne skriver om i länken.  I nästa bild ser vi att de gulmarkeraderna nu saknas. Däremot kan man inte undvika att nollutfyllnad sker av loggfilerna.

  

SQL koden för att testa detta är denna:

USE master; 

--Slå på traceflaggorna 3004 och 3605
DBCC TRACEON(3004, 3605, -1);

-- Skapa en testdatabas 
CREATE DATABASE TestDB ON  PRIMARY
	(NAME = N'TestDB', 
		FILENAME = N'C:TempTestDB.mdf', SIZE = 5MB) 
	LOG ON( NAME = N'TestDB_log', 
		FILENAME = N'C:TempTestDB_log.ldf', SIZE = 2MB) 
	
-- Slå av de två traceflaggorna
DBCC TRACEOFF(3004,3605,-1); 

--Ta bort databasen
DROP DATABASE TestDB;