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 :

VBNet et MS SQL: IN() ou JOIN


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2010
    Messages : 132
    Par défaut VBNet et MS SQL: IN() ou JOIN
    Bonjour,

    Question générale d'interface SQL-Server et VBNet:

    -Soit une table SQL Server à 2 colonnes (Name, Attribut) et m entrées:

    -Soit un tableau VBNet à 2 dimensions et n-entrées: tableau(n,1)
    où les items (0,0) à (n,0) sont des noms existant dans la colonne SQL "Name";

    pour récupérer les valeurs SQL de la colone "attributs" dans la deuxieme colone du tableau (item (0,1) à (n,1) est il plus rapide de:

    1. construire une monstrueuse requête conditionnelle SQL depuis VBNet du genre "SELECT Name, Attribut FROM MaTable, WHERE Name IN(tous les items du tableau)

    2. Construire une table temporaire SQL et faire un JOIN?

    3. Une solution très classe de votre propre cru.

    dans les deux cas je me récupère un dataAdapter et je le relis biensûr.

    merci de vos avis éclairés,
    Zebrette.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    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 198
    Par défaut
    le mieux serait que tu fasses le test

    sur sql server il est en général plus long de faire une table temporaire, car ca fiat des opérations d'écriture en plus ...

    sinon si les données de base viennent de la base de données, tu peux récupérer le contenu des 2 avec une jointure, pas sur que ca soit plus rapide, et il y a en général plus de données à faire transiter
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2010
    Messages : 132
    Par défaut
    J'ai pas encore prit le temps de tester, mais finalement j'ai:
    1. fait une HashTable à partir du résultat de la requête
    2. et une boucle sur le tableau en cherchant chacun de ses éléments dans la hashtable

    construire la hash table est quasiment instantané et le temps croit linéairement avec le nombre d'élément sur le serveur (testé avec seulement 300 éléments sur le serveur);

    la recherche dans la hashtable (2) est un peu plus longue mais rien de génant par rapport au autres opération que le code doit ensuite effectuer. (par contre, le temps d'opération croit plutot exponentiellement avec le nombre d'éléments)

    A l'occasion je posterais mes test avec de grosses tables.

    merci en tout cas,
    Zebrette

Discussions similaires

  1. [SQL SERVER] Inner join null ?
    Par diaboloche dans le forum Langage SQL
    Réponses: 1
    Dernier message: 06/03/2007, 15h59
  2. [SQL] Ordre des joins
    Par pinocchio dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 30/11/2006, 16h14
  3. [Access] Problème dans une requête SQL avec INNER JOIN ?
    Par bds2006 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/06/2006, 10h57
  4. [Mon premier code SQL] Multiples INNER JOIN's
    Par Paulinho dans le forum Langage SQL
    Réponses: 1
    Dernier message: 14/11/2005, 09h04
  5. [Debutant][Join Sql] problème de join
    Par ultimax dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/11/2004, 12h01

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