IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[VS2005 et SQL server2000]DataSet et performances


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Par défaut [VS2005 et SQL server2000]DataSet et performances
    Voilà, je vous explique mon problème:

    je dois faire une application jetable en windows form pour effectuer une reprise de donnée (d'un ancien système, vers un nouvelle IHM ASP.NET).
    Le base de donnée sur laquelle se fait la reprise est SQL Server 2000.
    Les données de l'ancienne application nous sont fournies sous forme de fichiers texte avec séparateur "|" (et je n'ai pas d'autres choix ).

    Il y aura un fichier, par table à alimenter, dans ma base de donnée, et ils respectent le mapping des tables que je dois alimenter (Ca c'est plutôt cool ).
    J'aurai quand même quelques contrôles (format des données, contraintes de non nullité, d'unicité....) et des conversions de données à effectuer, avant d'injecter ces nouvelles données dans ma bases.

    J'ai également des contraintes de temps à respecter: cette reprise de donnée ne devra pas dépasser une journée, malgrés les volumes important sur certaines tables.

    Mon idées était pour chaque fichier (qui représente les données pour une table):
    1) de lire mon fichiers ligne par ligne (grâce à une moulinette,qui me pemettra, de splitter mes données)
    2) d'effectuer les contrôles et les convertions sur mes données
    3) d'alimenter un dataset qui aura la structure de ma table et sera lié à un DataAdapter (jutiliserai une requête SELECT qui ne me retournera rien, mais me permettra de lier mon DataSet au DataAdapter)
    4) une fois le fichier lu en entier et le dataset chargé, je mettrai la table à jour dans ma base grâce à la commande Update du DataAdapter auquel est lié mon DataSet.

    En effet, vu le volume des données, je ne veux pas faire un aller-retour en base chaque fois que je dois insérer une nouvelle ligne dans une table.... J'vais y passer des plombes.

    Mon souci c'est que j'ai peur que le DataSet ne supporte pas le volume des données.
    Et j'ai un peu peur que cette méthode soit une vrai catastrophe, malgrés tout, en terme de performances.

    Si l'appel à une procédure Stockée me permettait de passer un tableau de données en paramètre, c'est ce que j'utiliserai pour faire un insert global dans ma table (une fois toutes les manipulations sur les données effectuées), mais ce n'est pas le cas.
    J'ai lu que la version 2005 de SQL Server permet désormais de passer un flux XML en paramètre, mais moi je travaille sur la version SQL Server 2000 .

    J'ai déjà beaucoup parcouru le forum et le Net à la recherche d'une solution optimale, mais à force de lire des opinions complètement différentes les unes des autres (et surtout sur des sujets qui ne collent pas exactement à mon pb), j'avoue que j'aurais besoin de votre aide!!

    Vous avez des idées sur la question?
    Merki d'avance!!

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Par défaut
    bon mon sujet ne sembles pas inspirer beaucoup de monde.....

    Je rajoute quand même un autre problème qui vient de se présenter:
    dans ma base de donnée:
    J'ai une table principale qui contient tous mes clients et l'identifiant client, qui est autoincrémenté, est présent dans chacune de mes autres tables afin de faire la liaison entre mes client et les donnée s le concernant dans mes autres tables.

    1) Comment gérer l'insertion de lignes autoincrémentés, en utilisant mon DataAdaptater et mon dataset,
    2) Comment gérér la liaison des données avec mes autres tables!!!

    Merki pour vos réponses (s'il y en a...lol )

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 55
    Par défaut
    Pourquoi ne pas utiliser SSIS ?

  4. #4
    Membre confirmé Avatar de FraktaL
    Profil pro
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Par défaut
    Personnellement, je ferais une boucle et un insert de chaque ligne.

    Si c'est plus lent ca ne doit pas être de beaucoup.

    Cela dit une autre méthode consisterait à créer des fichiers .sql en C# dans lesquels tu mets tout tes INSERT et d'importer ensuite ces fichiers sous SQL server.

Discussions similaires

  1. [sql server2000 ed developpeur) Erreur entreprise manager
    Par GéniuS77 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 26/05/2008, 08h02
  2. Sauvegarde et Réstauration d'une BD SQL server2000
    Par da_latifa dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 30/01/2006, 13h33
  3. Pb Requête Corrélées sur MS SQL-SERVER2000
    Par Pongo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/09/2005, 16h08
  4. Connection a une BD SQL SERVER2000 ????
    Par pop bob dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/08/2005, 16h41
  5. Forcer date, heure et seconde sous sql server2000
    Par sorel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/05/2005, 18h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo