1 MB is not the right choice for autogrowth !

You should always set auto growth to a sensible value that suits your environment. I tend to capture the autgrowth value for a month and then average it out to give me a ball park figure of autogrowth for my database .

[I have provided a sample script here as well.][1] Also refer to [Mike Walsh's answer][2].

The default trace keeps track of AUTOGROWTH events out-of-the box. Below script will give you a good starting point.

Also, [Instant file initialization][3] is a boon when auto growth kicks in (ONLY applies to data files).

    IF OBJECT_ID('tempdb..#autogrowthTotal') IS NOT NULL
    	DROP TABLE #autogrowthTotal;
    IF OBJECT_ID('tempdb..#autogrowthTotal_Final') IS NOT NULL
    	DROP TABLE #autogrowthTotal_Final;
    
    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] as LogicalFileName
    ,(ftg.IntegerData*8)/1024.0 AS GrowthMB
    ,(ftg.duration/1000)AS DurMS
    ,mf.physical_name AS PhysicalFileName
    into #autogrowthTotal
    FROM ::fn_trace_gettable(@filename, DEFAULT) AS ftg
    INNER JOIN sys.trace_events AS te ON ftg.EventClass = te.trace_event_id 
    join sys.master_files mf on (mf.database_id = ftg.databaseid) and (mf.name = ftg.[FileName]) 
    WHERE (ftg.EventClass = 92  -- Data File Auto-grow
        OR ftg.EventClass = 93) -- Log File Auto-grow
    ORDER BY ftg.StartTime
    
    select count(1) as NoOfTimesEventFired
    		, CONVERT(VARCHAR(10), StartTime, 120) as StartTime
    		, EventName
    		, DatabaseName
    		, [LogicalFileName]
    		, PhysicalFileName
    		, SUM(GrowthMB) as TotalGrowthMB
    		, SUM(DurMS) as TotalDurationMS
    into #autogrowthTotal_Final
    from #autogrowthTotal
    group by CONVERT(VARCHAR(10), StartTime, 120),EventName,DatabaseName, [LogicalFileName], PhysicalFileName
    --having count(1) > 5 or SUM(DurMS)/1000 > 60 -- change this for finetuning....
    order by CONVERT(VARCHAR(10), StartTime, 120)
    
    select * from #autogrowthTotal_Final


Original Script from [SimpleTalk.com][4] (modified a bit to help me for reporting).


  [1]: http://dba.stackexchange.com/a/53917/8783
  [2]: http://dba.stackexchange.com/a/53910/8783
  [3]: http://www.sqlpassion.at/archive/2014/02/18/improving-sql-server-performance-by-using-instant-file-initialization/
  [4]: https://www.simple-talk.com/sql/database-administration/sql-server-database-growth-and-autogrowth-settings/