您可以查询默认跟踪以获取有关最近增长事件的信息。
DECLARE @path nvarchar(260) = (
SELECT REVERSE(SUBSTRING(REVERSE(path), CHARINDEX('\', REVERSE(path)), 260)) +'log.trc'
FROM sys.traces
WHERE is_default = 1)
SELECT gt.DatabaseID,
gt.FileName,
COUNT(*) AS NumberOfEvents,
CASE WHEN te.name LIKE'%Grow' THEN 1 ELSE 0 END AS is_growth_event
FROM sys.fn_trace_gettable(@path, DEFAULT) gt
JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id
WHERE te.name in ('Data File Auto Grow','Log File Auto Grow','Data File Auto Shrink','Log File Auto Shrink')
GROUP BY gt.DatabaseID,
gt.FileName,
te.name
Run Code Online (Sandbox Code Playgroud)
您还可以使用事件通知来获得通知DATA_FILE_AUTO_GROW
,LOG_FILE_AUTO_GROW
而无需轮询跟踪。
小智 1
这是你想要的?(更多信息请参见:http://msdn.microsoft.com/en-us/library/ms188233.aspx):
SELECT
name AS FileName,
size*1.0/128 AS FileSizeinMB,
'MaximumSizeinMB' =
CASE max_size
WHEN 0 THEN 'No growth is allowed.'
WHEN -1 THEN 'Autogrowth is on.'
WHEN 268435456
THEN 'Log file will grow to a maximum size of 2 TB.'
ELSE CAST (max_size*1.0/128 AS nvarchar(30))
END,
growth AS 'GrowthValue',
'GrowthIncrement' =
CASE
WHEN growth = 0 THEN 'File size is fixed and will not grow.'
WHEN growth > 0 AND is_percent_growth = 0
THEN 'Growth value is in units of 8-KB pages.'
ELSE 'Growth value is a percentage.'
END
FROM sys.database_files
Run Code Online (Sandbox Code Playgroud)