2009-02-13 7 views
5

Tengo que estimar el tamaño de datos de la base de datos cuando se rellena con valores de pronóstico para cada tabla. Al menos debe incluir el tamaño que se utilizará para los datos y los índices.¿Hay una herramienta de medida de datos disponible para SQL Server 2005?

Solía ​​haber una herramienta como esta en SQL Server 2000 que producía un tamaño estimado cuando se suministraba con la cantidad de registros por tabla (creo que se envió con el kit de recursos de SQL 2000). No puedo encontrar esta herramienta para 2000 o 2005 :(

Sé sobre sp_spacedused pero eso no va a funcionar para mí, ya que tengo que llenar previamente la base de datos con valores y potencialmente tengo muchos escenarios para calcular.

Respuesta

2

En sus zapatos, probablemente solo crearía la base de datos y trataría de llenarla con una muestra representativa de datos y luego vería cómo son los tamaños de las tablas.

Esta secuencia de comandos SQL lo hace sobre todas las mesas - que no tiene que llamar sp_spaceused en todas y cada mesa individual:

SELECT 
    t.NAME AS TableName, 
    i.name as indexName, 
    sum(a.total_pages) as TotalPages, 
    sum(a.used_pages) as UsedPages, 
    sum(a.data_pages) as DataPages, 
    (sum(a.total_pages) * 8)/1024 as TotalSpaceMB, 
    (sum(a.used_pages) * 8)/1024 as UsedSpaceMB, 
    (sum(a.data_pages) * 8)/1024 as DataSpaceMB 
FROM 
    sys.tables t 
INNER JOIN  
    sys.indexes i ON t.OBJECT_ID = i.object_id 
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id 
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id 
WHERE 
    t.NAME NOT LIKE 'dt%' AND 
    i.OBJECT_ID > 255 AND 
    i.index_id <= 1 
GROUP BY 
    t.NAME, i.object_id, i.index_id, i.name 
ORDER BY 
    object_name(i.object_id) 
2

Ha considerado el uso de una herramienta para generar datos ficticios?

se puede crear tablas con datos suficientes para proporcionar una buena estimación (es decir, crear algunos datos representativos y luego factorizar hacia arriba) de su tamaño de las bases de datos de producción.

Puede encontrar que Herramientas como el Generador de datos SQL de Red Gates sean útiles.

http://www.red-gate.com/products/SQL_Data_Generator/index.htm

Cheers, John

2

La última vez que hice esto fue Excel, lápiz, parte posterior del sobre y la conjetura educada. La respuesta no fue muy incorrecta. Supongo que estás hablando de volúmenes de datos serios, ya que el disco es tan barato/disponible en la actualidad que todos menos los mayores DB se ejecutarán en servidores pequeños (ish).

Puede dar más detalles de los recuentos de filas previstos y el tipo de datos que almacenará. Por cierto, no va con Blobs/images/video en la base de datos, es algo feo una vez que se escala.

Cuestiones relacionadas