0

Dilemme:Quelle est la plus rapide approche pour remplir MS SQL base de données avec une grande quantité de données

Je suis sur le point d'effectuer la population des données sur MS SQL Server (2012 Dev Edition). Les données sont basées sur les données de production. Le montant est d'environ 4 To (environ 250 millions d'articles).

Objet:

Pour tester les performances sur la recherche en texte intégral et régulier index ainsi. Le nombre cible devrait être d'environ 300 millions d'articles autour de 500K chacun.

Question:

Que dois-je faire avant d'accélérer le processus ou les conséquences que je vous inquiéter?

Ex.

  1. Désactiver les statistiques?
  2. Dois-je effectuer une insertion en bloc de 1k articles par transaction au lieu d'une seule transaction?
  3. Modèle de récupération simple?
  4. Troncature de log?

Important:

Je vais utiliser l'échantillon de 2k des éléments de production pour créer chaque élément aléatoire qui sera inséré dans la base de données. J'utiliserai des échantillons quasi uniques générés en C#. Ce sera une table:

table 
(
    long[id], 
    nvarchar(50)[index], 
    nvarchar(50)[index], 
    int[index], 
    float, 
    nvarchar(50)[index], 
    text[full text search index] 
) 
+0

Copie possible http://stackoverflow.com/questions/410653/test-user-data-fake-data – Kermit

+0

@njk Je n'ai aucun problème à créer des données. J'ai des soucis de performance concernant la base de données de remplissage avec une grande quantité de données. – Falcon

Répondre

1

Presque toujours, dans une situation comme ça, et je l'ai eu plusieurs d'entre eux, je l'ai utilisé SSIS. SSIS est le moyen le plus rapide que je connaisse pour importer de grandes quantités de données dans une base de données SQL Server. Vous avez un contrôle complet sur le lot (taille de la transaction) et il effectuera l'insertion en masse. De plus, si vous avez des besoins de transformation, SSIS s'en chargera facilement.

+0

Toutes les données seront créées à la volée (en raison de la mémoire). Les données textuelles proviennent de fichiers générés aléatoirement et toutes les autres proviennent d'informations générées aléatoirement. Toutes les données sont générées pour imiter certains scénarios. Quel est le meilleur moyen de transférer l'information générée par C# dans SSIS? Y a-t-il un fournisseur de quelque sorte? Ou dois-je créer des fichiers intermédiaires? – Falcon

+0

Souhaitez-vous élaborer sur votre réponse depuis que j'ai posé une question sur l'intégration avec les données générées et ne pas importer? Il y a une grande différence entre la population de données et sa migration. – Falcon

+0

Si je lis correctement votre question, vous insérez 2 000 lignes générées dans votre tableau à titre d'exemple. C'est une si petite quantité, vous n'avez pas besoin de prendre des précautions spéciales. –

Questions connexes