Les besoins nécessitent une mise à jour et une insertion pour 10 millions d'enregistrements dans Sql Server 2005. J'ai créé une procédure stockée à l'aide de T-SQL. Avons-nous besoin de faire un commit après le processus ci-dessus, disons 10000 enregistrements validés à la fois. Si c'est le cas, comment puis-je écrire une déclaration de validation par exemple tous les 10000 enregistrements. Toutes les idées seraient appréciées.Validation de bloc après mise à jour/insertion pour 10 millions d'enregistrements en cours de traitement
0
A
Répondre
3
En général, une méthode pour effectuer des suppressions/mises à jour/insertions par lots consiste à utiliser une boucle WHILE
. Le modèle que je suis normalement est:
WHILE 1=1
BEGIN
INSERT INTO dbo.MyTable
(field1, field2, field3...)
SELECT TOP 100000 (field1, field2, field3...)
FROM dbo.MySourceTableorQuery as S
WHERE NOT EXISTS (
SELECT * FROM dbo.SourceTableorQuery as S
WHERE s.PrimaryKey = MyTable.PrimaryKey)
IF @@ROWCOUNT<100000 BREAK;
END
Quant à « si vous devez », c'est impossible de répondre sans beaucoup d'autres informations. Quel type de requête est-ce, comment est la structure de la table, combien de temps cela prend-il pour fonctionner actuellement, comment allez-vous pour l'espace disque (vous augmenterez vraiment la taille de tempdb si c'est une seule transaction) insérez-vous dans, etc?
Questions connexes
- 1. MSMQ - Messages en cours de traitement à plusieurs reprises
- 2. Cours de traitement d'image en PHP
- 3. Bibliothèque d'entreprise Bloc de validation
- 4. Validation pour un numéro de téléphone à 10 chiffres
- 5. En cours de traitement du serveur Web pour MVC2
- 6. Le traitement d'un projet est en cours?
- 7. Validation de Rails en cours d'exécution par rapport à l'enregistrement d'origine pendant la mise à jour
- 8. Exécution des instructions de mise à jour Oracle en mode de traitement par lots
- 9. Mise à jour en bloc d'une table
- 10. Mise à jour de l'étiquette ASP.NET pendant le traitement
- 11. Contrôle du volume en cours de traitement (java)?
- 12. Java: Format de nombre en millions
- 13. JQUERY getJSON/réponse ajax pas en cours de traitement
- 14. jQuery vérifier si javascript est en cours de traitement
- 15. Mise à jour du client Oracle de 9 à 10
- 16. Désactiver la mise à jour de l'image webcam en cours
- 17. Mise à jour Javascript vers la cellule de tableau HTML (de milliers à millions)
- 18. Mise à jour de mise en page de contrôle Silverlight en cours d'exécution
- 19. Apache htaccess sur Win2k n'est pas en cours de traitement
- 20. Mise à jour UIImageView en cours de cycle
- 21. bibliothèque Enterprise bloc de validation et rulesets
- 22. le traitement des demandes de validation « en silence »
- 23. Champ d'auto-complétion de millions de lignes - idées de mise en œuvre?
- 24. colonnes en cours de reliure en-tête sous forme de texte pour un bloc de texte à l'intérieur DataTemplate
- 25. Django validation des champs dans un formset contre une autre forme en cours de traitement en même temps
- 26. Évitez la mise en cache après la mise à jour de l'image pour Paperclip
- 27. Messages de validation après redirection
- 28. Exécuter (partie de) try bloc après sauf le bloc
- 29. WPF pas la mise à jour en cours textbox tout
- 30. Silverlight, Mise à jour de l'IU pendant le traitement
Combien de fois/souvent devez-vous faire cela? – JeffO
Y aura-t-il des lecteurs concurrents de la table que vous voulez éviter de bloquer via l'escalade de verrous? Votre disque de journal des transactions a-t-il beaucoup d'espace? –