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

MS SQL Server Discussion :

suivi de progression avec une procédure stockée.


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2002
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 31
    Points : 27
    Points
    27
    Par défaut suivi de progression avec une procédure stockée.
    Bonjour,
    dans le projet sur lequel je travail, nous avons mis en place une procédure stockée qui effectue un gros traitement sur tout un ensemble de données.

    Celle-ci contient un curseur sur l'ensemble des enregistrements à traiter et pour chaque enregistrement, on fait appel à différents procédures qui effectuent le boulot.

    Ma question est la suivante, vu que le traitement pour être relativement long, est-il possible que la procédure me retourne un "top" à chaque enregistrement traité pour pouvoir ainsi estimer la progression du traitement avec une progress bar ou autre.

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Tu peux essayer de renvoyer un SELECT régulièrement, le problème va avec la connexion, il faut qu'elle reçoive les résultats pendant que la procédure est toujours en exécution. Ca fonctionne peut-être telle quelle ou tu peux profiter avec le client natif 2005, de la technologie MARS.

    Au pire, fais en sorte que ta procédure écrive l'info de progression dans une table, et tu polles la table régulièrement avec une autre connexion.

    En note, essaie vraiment d'éviter les curseurs.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2002
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 31
    Points : 27
    Points
    27
    Par défaut
    Merci pour ta réponse.
    Par contre, je ne vois pas comment je peux faire pour éviter le curseur.

    Car en résumé, j'ai 14000 dossiers que je dois traiter pour en renvoyer les informations dans une table...

    J'ai pas mal de traitement à faire sur les données, du coup je ne peux pas utilier un simple "INSERT SELECT".

    Donc comment faire...

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 920
    Points : 51 712
    Points
    51 712
    Billets dans le blog
    6
    Par défaut
    Il y a un gros içnconvénient à tenter ce genre de chose, c'est que de quelque manière que ce soit, le traitement de la procédure va être très sensiblement augmenté des délais de la cosmétique. De plus en environnement C/S passant par le réseau (donc très lent à l'échelle du proc) vous allez avoir des temps de réponse particulièrement catastrophique...

    A une certaine époque (années 90) Borland avait tenter de rendre la chose souple en introduisant la notion de call back... Cepandant cela s'avérait perturbant.

    En gros, soit vous faîtes joli et alors prévoyez une base plutôt mono utilisateur, soit vous faîtes performant et vous trouvez une autre manière de présenter les choses comme un disque tournant par exemple.

    A +

  5. #5
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Les alternatives au cuseur peuvent être par exemple de stocker les données dans une table temporaire, et de faire le plus possible de traitements ensemblistes à partir de cette table.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2002
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 31
    Points : 27
    Points
    27
    Par défaut
    Je suis effectivement en train de me diriger cette voie.
    Merci du conseil.

Discussions similaires

  1. [SS2K5] : Peupler une CTE avec une procédure stockée
    Par jeff37 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/03/2007, 11h25
  2. [PEAR][MDB2] Erreur avec une procédure stockée
    Par mikedavem dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 04/01/2007, 17h49
  3. Réponses: 2
    Dernier message: 06/12/2006, 09h54
  4. [format des données avec une procédure stockée]
    Par viny dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 10/03/2005, 14h24
  5. Problème avec une procédure stockée
    Par in dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/05/2003, 16h33

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