Una query SQL che torna utile per visualizzare l'impostazione Autogrowth dei database MS SQL Server

SQL

SELECT databaseName = DB_NAME(database_id),
  [logicalName] = [name], 
  [fileSizeMB] = CONVERT (numeric (15,2) , (convert(numeric, size) * 8192)/1048576),
  [isPercentGrowth] = case is_percent_growth when 1 then 'Yes' when 0 then 'No' end, 
  [autoGrowth] = growth,
  [autoGrowthMB] = case is_percent_growth
    when 1 then CONVERT(numeric(18,2), (((convert(numeric, size)*growth)/100)*8)/1024)
    when 0 then CONVERT(numeric(18,2), (convert(numeric, growth)*8)/1024) 
  end,
  [maxSize] = max_size,
  [isReadOnly] = case is_read_only when 1 then 'Yes' when 0 then 'No' end,    
  [state]=state_desc,
  [physicalName] = physical_name
FROM sys.master_files
WHERE [type] in (0,1) --and [growth] != 0

query presa da Autogrowth option for SQL Server database files

Di default SQL Server imposta 1MB di autogrowth sui file dati e 10% sui file di log. Questi valori sono impostati nelle property del database model quindi per cambiare i valori di default bisogna agire su questo DB.

L'impostazione in percentuale non è consigliata per DB molto grandi (maggiori di 500MB), conviene impostare un valore fisso in MB.
Tieni presente che se hai un autogrowth a 1MB ed aggiungi un dei dati pari a 10MB (ad esempio un file) SQL deve espandere 10 volte il file di dati. Questo in termini di prestazioni è molto penalizzante.
Tags:
SQL90 SQL Server100 T-SQL66
Potrebbe interessarti anche: