Here is an SP I use to monitor the growth of DBs out in the field. If you have a test server, with the DB set up on it, you could run this proc initially to get the zero value. Then run a test set of data, say a million records or whatever number you feel is adaquate and then re-run the SP to see the differences. You can then rerun your test set of data and the SP to get a feel for the growth of the DB.
CREATE PROC usp_Monitor_DB_Growth
( @dbnameParam sysname = NULL )
AS
BEGIN
DECLARE @dbname sysname
/* Work with current database if a database name is not specified */
SET @dbname = COALESCE(@dbnameParam, DB_NAME())
TRUNCATE TABLE Monitor_DB_Growth
INSERT INTO Monitor_DB_Growth
SELECT @dbname AS [Database Name],
'DB' AS [DB_or_TLog],
CONVERT(char, backup_start_date, 111) AS [Date], --yyyy/mm/dd format
CONVERT(char, backup_start_date, 108) AS [Time],
CONVERT(numeric(15,2),file_size/1048576) AS [File Size (MB)],
Growth AS [Growth Percentage (%)],
GetDate() AS [Date_Stats_Pulled]
FROM
(
SELECT b.backup_start_date,
a.backup_set_id,
a.file_size,
a.logical_name,
a.[filegroup_name],
a.physical_name,
(
SELECT CONVERT(numeric(15,2),((a.file_size * 100.00)/bf.file_size)-100)
FROM MSDB.dbo.backupfile bf
WHERE bf.backup_set_id =
(
SELECT MAX(bf2.backup_set_id)
FROM MSDB.dbo.backupfile AS bf2
JOIN MSDB.dbo.backupset AS bs
ON bf2.backup_set_id = bs.backup_set_id
WHERE bf2.backup_set_id < a.backup_set_id AND
bf2.file_type ='D' AND
bs.database_name = @dbname AND
bf2.logical_name = a.logical_name AND
bf2.logical_name = bf.logical_name AND
bs.type = 'D'
) AND
bf.file_type = 'D'
) AS Growth
FROM MSDB.dbo.backupfile AS a
JOIN MSDB.dbo.backupset AS b
ON a.backup_set_id = b.backup_set_id
WHERE b.database_name = @dbname AND
a.file_type = 'D' AND
b.type = 'D'
) AS Derived
WHERE (Growth <> 0.0) OR
(Growth IS NULL)
ORDER BY logical_name, [Date]
END
GO
Thanks
J. Kusch