Salut à tous,
D'abords plantons le décor : SQLServeur 2008 R2, un petit utilitaire qui prépare des bases client. Dans le processus de préparation, il y a une phase d'import d'une 50ène de fichiers plats disons csv pour faire simple (c'est pas du "vrai" csv, mais c'est le même principe).
Les fichiers se trouveront normalement dans un dossier du serveur SQLServer. C'est pas une obligation à l'heure actuelle, mais une forte recommandation, ça pourra le devenir si c'est nécessaire. La seule obligation est que les fichiers soient accessibles sur le réseau par le moteur SQL.
L'utilitaire est utilisé en local sur le poste des utilisateurs, plusieurs utilisateurs simultanément. L'utilitaire est développé en .Net et actuellement l'import des fichiers est réalisé par la méthode .Net SQLBulkCopy.
Sur le réseau local tout marche bien
Maintenant, le problème :
Bientôt, 10% environ des utilisateurs, peut-être plus à terme, seront localisés sur un site distant, connexion au siège via internet et vpn (je suis moi-même sur ce site distant)
Avec cette méthode de SqlBulkCopy, les temps d'intégration des dits-fichiers se trouve multiplié pas 15 à 20, ce qui n'est pas acceptable.
Avec une analyse rapide, j'ai l'impression que via SqlBulkcopy, chaque fichier est d'abords rapatrié en local sur la machine du site distant avant d'être renvoyé sous forme de requête (je pense) au serveur SQL.
il faudrait donc que je vire le SqlBulkCopy et que je le remplace par autre chose
A noter que pour le reste des traitements, même faisant intervenir SqlServer, il n'est pas relevé de différences notables entre une utilisation sur le réseau local ou depuis le site distant
Ce que je cherche :
Il me semble me rappeler avoir déjà effectuer ce genre d'insert à distance, il y a une bonne 10ènes d'années directement via une requête SQL, fichiers sur le serveur SQL distant, requête exécutée à distance via SSMS, le moteur se démerdait à récupérer les fichiers localement chez lui.
Mais je ne retrouve pas la syntaxe.
Rappel : fichiers présents sur le serveur SQL ou tout au moins accessible localement sur le réseau, fichier au format similaire au csv (délimiteur différent, ligne d’entête), les fichiers ne contiennent généralement pas toutes les colonnes de leur table correspondante (absence de la clé primaire notamment, auto-générée à l'insertion). On a déjà un fichier schéma pour l'ensemble des fichiers au format ini, compatible MS Jet 4.5
Commande envoyée depuis un exe lancé sur un poste d'un site distant
Partager