1

Is there a way to see when (history / log records) of .mdf / .ldf files grew?

Ultimately, is it possible to setup alerting and know immediately when my database / log files grow?

Oreo
  • 1,478
  • 7
  • 20
Aleksey Vitsko
  • 4,308
  • 3
  • 21
  • 47

1 Answers1

2

Here is a script that I use. I don't remember the source, but it is handy, as it will show you the growth events.

DECLARE @filename NVARCHAR(1000);
DECLARE @bc INT;
DECLARE @ec INT;
DECLARE @bfn VARCHAR(1000);
DECLARE @efn VARCHAR(10);

-- Get the name of the current default trace
SELECT @filename = CAST(value AS NVARCHAR(1000))
FROM ::fn_trace_getinfo(DEFAULT)
WHERE traceid = 1 AND property = 2;

-- rip apart file name into pieces
SET @filename = REVERSE(@filename);
SET @bc = CHARINDEX('.',@filename);
SET @ec = CHARINDEX('_',@filename)+1;
SET @efn = REVERSE(SUBSTRING(@filename,1,@bc));
SET @bfn = REVERSE(SUBSTRING(@filename,@ec,LEN(@filename)));

-- set filename without rollover number
SET @filename = @bfn + @efn

-- process all trace files
SELECT 
  ftg.StartTime
,te.name AS EventName
,DB_NAME(ftg.databaseid) AS DatabaseName  
,ftg.Filename
,(ftg.IntegerData*8)/1024.0 AS GrowthMB 
,(ftg.duration/1000)AS DurMS
FROM ::fn_trace_gettable(@filename, DEFAULT) AS ftg 
INNER JOIN sys.trace_events AS te ON ftg.EventClass = te.trace_event_id  
WHERE (ftg.EventClass = 92  -- Date File Auto-grow
    OR ftg.EventClass = 93) -- Log File Auto-grow
ORDER BY ftg.StartTime
Oreo
  • 1,478
  • 7
  • 20
SqlNovice
  • 624
  • 2
  • 9
  • 21
  • Note that this will work for on-premises SQL Server instances, not Azure Virtual SQL Servers (though it will of course work on on-prem instances running in Azure VMs). – David Spillett Feb 13 '18 at 16:50