Determine the rate of database growth over a period.
Determine the rate of database growth over a period.
Create Database DB_Administration
GO
-- Create Table to store info
CREATE TABLE [dbo].[GrowthDetails](
[Name] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Filename] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Size (MB)] [int] NULL,
[Timestamp] [datetime] NULL
) ON [PRIMARY]
GO
-- Add to a SQL agent job and schedule to run nightly
set nocount on
declare @dbname varchar(255)
declare dblist_cursor cursor
for select name
from sys.databases
where name NOT IN ('model', 'AdventureWorksDW', 'AdventureWorks', 'tempdb','master','msdb','DB_Administration')
open dblist_cursor
fetch next from dblist_cursor into @dbname
while @@fetch_status = 0
begin
Exec('Use ' + @dbname + ' insert into DB_Administration.dbo.growthDetails
([Name], [Filename], [Size (MB)],[Timestamp])
select [name], [filename], [size] , getdate() from sys.sysfiles')
fetch next from dblist_cursor into @dbname
end
deallocate dblist_cursor
--Stored proc to query db
CREATE procedure usp_DBGrowthDetails as
select [name], [filename], ([Size (MB)]/1024) as [Size (MB)] , [Timestamp] from dbo.growthDetails
order by [Name], [Size (MB)] desc
-- Retrieve records
Exec usp_DBGrowthDetails