none
import de données volumineux à partir d'une base de données SQL Server RRS feed

  • Question

  • Bonjour tout le monde,

     Je voulais savoir vos avis sur la façon de récupérer une grande quantité de données à partir de SQL Server 2005 en utilisant WCF.

    Pour m'expliquer jai une table dans ma base de données qui contient 250 colonnes  avec une requête qui peut retourner de 50,000 jusqu'à 200,000
    lignes.

    J'utilise le  "basicHttpBindings".Je fais un appel au serveur, qui invoque une procédure stockée qui retourne à son tour le résultat de la requête.
    En ce moment je récupère les resultat dans un  result set.

    J'ai implémenté les contrat de données et les opérations de Service.
    Quand je teste mon service le temps de réponse est très très long.

    Avec un peu de recherche j'ai entendu parlé du streaming mode.
    MAis je penses que le streamed mode marche avec les fichiers texte, les fichiers audio ..

    Dans mon cas quand j'utilise une table dans une BDSQL Server, comment je peux procéder?
    Est ce qu'il y a un moyen de récupérer le resultat de la requête de bout en bout en continu?
    Qu'en pensez vous?

    Merci en avance,


    dimanche 2 août 2009 11:54

Réponses

  • Bonjour,

    Est ce qu'il y a un moyen de récupérer le resultat de la requête de bout en bout en continu?
    C'est le principe même du streaming de WCF... Ce dernier découpe les paquets pour les grosses quantités de données.
    Ce lien devrait vous aider :

    http://msdn.microsoft.com/en-us/library/ms789010.aspx

    Si je peux me permettre, pour récupérer de telle quantités de données (déjà je trouve que c'est trop pour une requête et surtout avec 250 colonnes, ce qui doit certainement dénoter un gros défaut de conception au niveau de la base de données). Préférez plustôt l'extraction à la source des données vers un fichier texte et après extraction envoyez ce fichier à travers le réseau.
    Car utiliser HTTP + SOAP pour envoyer de grosse quantité de données, vous allez saturer très facilement le réseau par rapport à l'envoi d'un fichier texte contenant les données brutes (qui d'ailleurs peut-être compressé).

    Cordialement
    Gilles TOURREAU - MVP C#
    dimanche 9 août 2009 13:46
    Modérateur