มีหลายวิธีที่คุณสามารถวางแผนความจุของฐานข้อมูลได้
ประวัติการสำรองข้อมูล msdb หากได้รับการตัดแต่งเป็นประจำคุณจะไม่เหลือข้อมูลมากพอสำหรับการวิเคราะห์
ดังที่มาร์คชี้ให้เห็นว่ามันสามารถทำได้โดยใช้วิธีการที่อธิบายโดย Erin - แนวโน้มการเติบโตของฐานข้อมูลจากการสำรองข้อมูล
คุณสามารถใช้ PIVOT เพื่อค้นหาการเติบโตของฐานข้อมูลในช่วง 12 เดือนจากประวัติการสำรองดังนี้
DECLARE @startDate DATETIME;
SET @startDate = GetDate();
SELECT PVT.DatabaseName
,PVT.[0]
,PVT.[-1]
,PVT.[-2]
,PVT.[-3]
,PVT.[-4]
,PVT.[-5]
,PVT.[-6]
,PVT.[-7]
,PVT.[-8]
,PVT.[-9]
,PVT.[-10]
,PVT.[-11]
,PVT.[-12]
FROM (
SELECT BS.database_name AS DatabaseName
,DATEDIFF(mm, @startDate, BS.backup_start_date) AS MonthsAgo
,CONVERT(NUMERIC(10, 1), AVG(BF.file_size / 1048576.0)) AS AvgSizeMB
FROM msdb.dbo.backupset AS BS
INNER JOIN msdb.dbo.backupfile AS BF ON BS.backup_set_id = BF.backup_set_id
WHERE BS.database_name NOT IN (
'master'
,'msdb'
,'model'
,'tempdb'
)
AND BS.database_name IN (
SELECT db_name(database_id)
FROM master.SYS.DATABASES
WHERE state_desc = 'ONLINE'
)
AND BF.[file_type] = 'D'
AND BS.backup_start_date BETWEEN DATEADD(yy, - 1, @startDate)
AND @startDate
GROUP BY BS.database_name
,DATEDIFF(mm, @startDate, BS.backup_start_date)
) AS BCKSTAT
PIVOT(SUM(BCKSTAT.AvgSizeMB) FOR BCKSTAT.MonthsAgo IN (
[0]
,[-1]
,[-2]
,[-3]
,[-4]
,[-5]
,[-6]
,[-7]
,[-8]
,[-9]
,[-10]
,[-11]
,[-12]
)) AS PVT
ORDER BY PVT.DatabaseName;
ไม่มีทางที่คุณจะพบว่ามีประโยชน์จริงๆตามที่อธิบายไว้อย่างดีอีกคือการวางแผนฐานข้อมูลพื้นที่ความจุ - ชาดมิลเลอร์เอสเอส เขายังเน้นdays remaining
ที่มีประโยชน์มาก