Pregunta

¿Cuál es la forma más rápida para rellenar una tabla SQL con datos ficticios?

I tiene una amplia mesa con unos 40 campos de diferentes tipos (int, poco, varchar, etc.) y la necesidad de hacer algunas pruebas de rendimiento. Estoy usando SQL Server 2008.

Gracias!

¿Fue útil?

Solución

generador de datos SQL por Redgate

La generación de datos en un clic

Los datos realistas basadas en la columna y el nombre de la tabla

Los datos pueden modificarse si se quiere

Elimina las horas de trabajo tedioso

Soporte completo para SQL Server 2008

Otros consejos

Recomendar la libre, GNU-licencia, los datos personalizados al azar generador http://www.generatedata.com/

respuesta tardía, pero puede ser útil para otros lectores de este hilo. Junto a otras soluciones, puedo recomendar la importación de datos desde un archivo .csv mediante SSMS o scripts SQL personalizadas de importación, programas. Hay un tutorial paso a paso sobre cómo hacer esto, por lo que es posible que desee comprobar que funciona: http://solutioncenter.apexsql.com/how-to-generate-randomized-test-data-from-a-csv-file/

Tenga en cuenta que la importación de un archivo CSV utilizando SSMS o secuencias de comandos de importación SQL personalizadas, es más fácil que la creación de inserciones SQL manualmente, pero hay algunas limitaciones, como se explica en el tutorial:

Si hay una necesidad de miles de filas a estar ocupados, y el archivo .csv contiene pocos cientos de filas de datos que no es suficiente. La solución es volver a importar el mismo archivo .csv una y otra vez hasta que se necesite. El inconveniente de este método es que se insertará grandes bloques de filas con los mismos datos, sin aleatorizar ellos.

El tutorial también se explica cómo utilizar un generador de datos SQL partido de tercera llamada ApexSQL Generar . La herramienta tiene una función integrada para generar grandes cantidades de datos aleatorios desde el archivo con formato CSV importado. Aplicación cuenta con una versión de prueba totalmente funcional para que pueda descargar y probarlo para ver si funciona para ti.

Sólo es necesario Go 1000 después de su INSERT, para llenarlo 1000 veces, al igual que este:

INSERT INTO dbo.Cusomers(Id, FirstName, LastName) VALUES(1, 'Mohamed', 'Mousavi')
GO 1000

Se hará una mesa con 1000 filas mismos en ella. Otra solución es que se puede instalar en la primera fila de la tabla con algunos datos, a continuación, llenar las siguientes filas de la tabla mediante la repetición de la primera fila y otra vez, que significa llenar su mesa por sí mismo:

INSERT INTO dbo.Customers
SELECT * FROM dbo.Customers 
GO 10

En el primer caso, o más columnas están identidad (lo que significa que aceptan valores únicos, si se trata de incremento automático), sólo no lo coloque en su consulta, por ejemplo, si Id en dbo.Customer es la identidad, la consulta va de esta manera:

INSERT INTO dbo.Customers
SELECT FirstName, Last Name FROM dbo.Customers
GO 10

En lugar de:

INSERT INTO dbo.Customers
SELECT Id, FirstName, Last Name FROM dbo.Customers
GO 10

lo contrario va a encontrar este error:

An explicit value for the identity column in table 'dbo.Customers' can only be specified when a column list is used and IDENTITY_INSERT is ON.

Nota: Esta es una especie de una progresión aritmética, por lo que va a durar un poco más, no utilice un número grande en frente de GO.

Si usted quiere tener una mesa que se llena un poco más elaborado, entonces puede lograr que el mismo camino esta vez mediante la ejecución de una consulta sencilla y siguiendo estos pasos:

  1. Escoja una de las tablas que tiene un notable número de filas, digamos dbo.Customers

  2. clic derecho sobre él y seleccione Script Table as > Create To > New Query Editor Window

  3. nombre de la nueva tabla a otra cosa, como dbo.CustomersTest, Ahora se puede ejecutar la consulta de tener una nueva tabla con estructura similar con los dbo.Customers.

Nota:. Tenga en cuenta que si se ha presentado una identidad, cambiarlo de Identity Specification to No Dado que se supone que llenar la nueva tabla con los datos de la original repetidamente

  1. Ejecutar la siguiente consulta, que va a ser ejecutado 1.000 veces, se puede cambiar a más o menos, pero tenga en cuenta que podría durar minuetos basado en el hardware del equipo:

INSERT INTO [dbo].[CustomersTest] SELECT * FROM [dbo].[Customers] GO 1000

  1. Después de un tiempo se tiene una tabla con filas ficticias en ella!

Como se mencionó @SQLMenace, Redgate generador de datos es una herramienta muy buena para cumplirla, que cuesta $ 369, usted tiene una oportunidad de 14 días de prueba Aunque.

El punto bueno es que las claves foráneas identifica Redgate para que pueda aplicar unirse a sus consultas.

Usted tiene un montón de opciones que le permiten decidir cómo se supone que cada columna a poblarse, cada columna está previsto semánticamente de modo que se sugieren los datos relacionados, por ejemplo, si tiene una columna llamada 'Departamento' no es rellenarse con caracteres extraños, está lleno de expresiones como "técnica", "web", "cliente", etc. Incluso puede utilizar expresiones regulares para restringir los caracteres seleccionados.

Me poblada mis tablas con más de 10.000.000 de registros que era una simulación impresionante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top