Quelle est la meilleure façon de traiter et d'importer un grand csv (500k loggings) sur le server SQL en utilisant Vbscript?

J'ai un système qui nécessite une grande quantité de noms et d'adresses e-mail (deux champs uniquement) à importer via le téléchargement CSV.

Je peux gérer le téléchargement assez facilement, comment puis-je vérifier les adresses e-mail avant de traiter l'import.

Comment puis-je traiter ceci rapidement ou en tant que process d'arrière-plan sans que l'user ne doive regarder un scénario?

Utilisation du server ASP / SQL classique 2008.

S'il vous plaît pas de jibes à l'asp classique.

Avez-vous besoin de faire ce téléchargement via l'application ASP? Si ce n'est pas le cas, quel que soit le type de langage de script avec lequel vous vous sentez le plus à l'aise, et vous pouvez le faire avec le time de encoding le plus court, c'est le meilleur outil pour le travail. Si vous avez besoin que les users puissent download dans l'application ASP classique et disposent d'un process fiable pour insert les loggings valides dans la database et rejeter les loggings non valides, vos options changent.

Avez-vous besoin de fournir des commentaires aux users? Comme leur disant exactement quelles lignes étaient invalides?

Si ce deuxième scénario est ce que vous avez affaire, je voudrais simplement l'application asp stocker le file, et avoir un autre process, un service .net, ou une tâche planifiée ou quelque chose, faire l'import et faire rapport sur sa progression dans un text file que l'application asp peut vérifier. Cela vous ramène à le faire dans n'importe quel langage de script avec lequel vous êtes à l'aise, et vous n'avez pas besoin de traiter la temporisation de la requête http.

Si vous utilisez google "e-mail valide regex", vous pouvez find une variété d'expressions régulières pour identifier les adresses email invalides.

Dans une vie antérieure, j'avais l'habitude de faire ce genre de chose en faisant glisser le file dans une table de travail en utilisant DTS , puis en retravaillant à l'aide de lots de commands SQL. Aujourd'hui, vous utiliseriez Integration Services .

Cela vous permet d'get très rapidement datatables dans SQL Server et d'empêcher l'expiration du script. Vous pouvez ensuite utiliser la méthode que vous préférez (par exemple, lots pilotés par AJAX, lots redirigés, etc.) pour travailler sur des segments discrets. ou planifiez l'exécution en tant que lot unique (un travail SQL Server ) et signalez simplement les résultats.

Vous pourriez être assez chanceux pour get vos lignes 500K traitées dans un seul lot par votre script de téléchargement, mais je ne le hasarderais pas.