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

VB.NET Discussion :

Méthode d'accès à une base client/serveur


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 31
    Par défaut Méthode d'accès à une base client/serveur
    Bonjour le monde, je viens du développement VB 6 / VBA (10 années d'exp. environ) et je suis super motivé pour passer définitivement à VB.Net 2008

    Je poste en désespoir de cause

    J'ai développé un ERP, sous Access 2000, utilisé par 15 personnes en simultanée (fichier MDB de 80Mo sur un serveur, interface MDB sur chaque poste client). Les temps de réponse sont satisfaisants.

    Je veux migrer sous VB.Net 2008 / BDD client-serveur Sybase.

    Je n'arrive pas à trouver une procédure de connexion à une base de données qui me satisfasse.
    J'ai utilisé la méthode "assistée" mais j'ai des temps de réponse qui sont lamentables par rapport à la même requête sous Access 2000 (listage de 6500 contacts en 4s. sous Access et environ 12s. sous VB.Net en utilisant un DataGridView qui s'appuie sur un Datasource avec un DataSet simplifié au max, c'est à dire 1 seule table)
    La même requête lancée sous ISQL (outil de sybase) prend 2s.

    Je fouille sur tous les sites traitants de .Net mais aucune méthode ne me parait optimisée.

    Quelqu'un pourrait-il m'expliquer quelle est "la" méthode qui est la plus adaptée svp ?

    Sorry pour la longueur et merci d'avance

    A+
    Yo'

    PS : le serveur de BDD tourne sur un DELL bi-xéon, 4Go de RAM, réseau en Gigabit.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 205
    Par défaut
    As-tu essaye de taper la requête directement dans le SGBD pour voir combien de temps cela prend a l'exécution?

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    on a aussi halluciné la première fois qu'on a rempli un datagridview .net par rapport au temps nécessaire sur un grid de vb6 ...


    le soucis c'est le datatable et le dataset ... et le datagridview lol
    dataset c'est bien pour les débutants, mais ca se base sur le datatable qui est horrible niveau perf
    en utilisant juste le datareader on est revenu dans des temps similaires à vb6

    après pour le remplissage du datagridview avec plusieurs milliers de lignes, il faut activer le virtualmode
    si tu as plus d'un form où tu afficheras plusieurs milliers de lignes, le mieux est de faire un usercontrol avec un datagridview dans lequel tu implémentes le virtualmode


    sinon pourquoi ne pas choisir sql server ... y a une version express (certes qui je crois limite légalement à 5 users, m'enfin tout le monde en mets beaucoup plus ...)


    (si tu cherches mes posts sur ce forum, j'ai expliqué plusieurs fois comment faire un grid en usercontrol qui est performant et qui se remplie au fur et à mesure)
    (et qui d'ailleurs fait aussi le café (bouton ajouter qui créer un formulaire pendant l'execution, bouton maj, bouton supprimer, bouton imprimer etc...))
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 205
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    (si tu cherches mes posts sur ce forum, j'ai expliqué plusieurs fois comment faire un grid en usercontrol qui est performant et qui se remplie au fur et à mesure)
    (et qui d'ailleurs fait aussi le café (bouton ajouter qui créer un formulaire pendant l'execution, bouton maj, bouton supprimer, bouton imprimer etc...))
    Pourquoi ne pas écrire un petit tuto?

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    pourquoi ne pas filer le code source non plus ? ^_^


    c'est un datagrid qu'on a développé dans le cadre professionnel ... pas sur que ca plaise que je le distribue (moi ca me dérangerais pas spécialement ...)

    par contre j'ai expliqué le principe de base du chargement des données sur un thread séparé dans une collection peu typée (plutot qu'un datatable qui est une classe plutot lourde) avec le datagrid en virtualmode
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 31
    Par défaut
    Sorry pour le retard ... pas mal de boulot en ce moment
    et merci pour les réps je me sens un peu moins seul

    julien_iz :
    Non je n'ai pas testé le SQL dans le code car, pour être honnête, je ne suis pas encore assez familier avec .net pour faire ce type de manip à froid
    Il me manque pas mal de notions pour créer une connexion avec une base sybase de mémoire.

    Pol63 :
    Si j'ai bien compris, tu bosses avec VB.Net au quotidien et tu n'utilises pas les Datatable, Dataset et autres ?
    Après test, le VirtualMode n'améliore pas mes temps de réponse.

    Comment feriez-vous pour faire ceci :

    • Afficher une liste de contacts (6500 environ) dans un objet qui permettrait de mettre en surbrillance certaines lignes (qui correspondent à des contacts avec qui on ne souhaite plus travailler) ou éventuellement de mettre de petits avatars en tête de ligne en fonction de la valeur d'un champs
    • Pouvoir filtrer facilement les contacts en fonction de plusieurs critères (ville, code postal, une partie du nom de l'entreprise, etc.). Un peu à l'image d'Access où on peut facilement utiliser le bouton droit de la souris pour indiquer 'Filtrer la sélection' ou 'Filtrer hors sélection', ...
    • Afficher un form qui permettrait de créer ou modifier la fiche d'un contact


    Bon encore sorry pour la longueur mais c'est pour vous donner tous les éléments nécessaires

    Merci dans tous les cas

Discussions similaires

  1. [WD15] Accès à une base de données client serveur
    Par Ratafia67 dans le forum WinDev
    Réponses: 4
    Dernier message: 03/12/2010, 08h57
  2. Acces à une base SQLServer sur un serveur dédié
    Par Cabire dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/04/2008, 15h13
  3. Pb accès à une base sur serveur !
    Par mosquitout dans le forum Access
    Réponses: 8
    Dernier message: 12/07/2006, 19h03
  4. Accès à une base de données SQL serveur
    Par TALNA dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/11/2005, 09h09
  5. Réponses: 17
    Dernier message: 28/10/2005, 11h59

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