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

WinDev Discussion :

indrubrique plus rapide?


Sujet :

WinDev

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 283
    Points : 263
    Points
    263
    Par défaut indrubrique plus rapide?
    Bonjour,

    Est-il vrai que les indirections avec le param 'indrubrique', utilisés sur les requêtes accélère la lectures des données?


    Code Windev : Sélectionner tout - Visualiser dans une fenêtre à part
    {"REQ_ProtectionAddiotionnelle_Detail.MontantA",indRubrique}

    aulieu de

    Code windev : Sélectionner tout - Visualiser dans une fenêtre à part
    REQ_ProtectionAddiotionnelle_Detail.MontantA


    Qu'en pensez-vous?

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Bonjour,

    Je ne vois pas pourquoi...je dirais même, d'intuition, que c'est le contraire... mais c'est une réponse sans argument particulier, juste la logique qui veut que l'indirection est une sorte de méta-langage et qui dit "méta" dit couche supplémentaire...
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Ceci dit plutôt que de croire ce que moi ou d'autres vous diront, vous pouvez réaliser un test de perf' assez rapidement...
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Je ne pense pas que ça accélère. Pas certain que ça ralentisse non plus. Le but des indirections est d'utiliser des variables pour les éléments "indirigés".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Pour i = 1 a 10
    Hcreation({"MonSuperFichier" +  numeriqueverschaine(i,"02d"), indfichier})
    {"MonAutreSuperfichier.adresse+  numeriqueverschaine(i,"02d"), indrubrique} = ""
    fin
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  5. #5
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 283
    Points : 263
    Points
    263
    Par défaut
    C'est aussi ce que je pense, j'utilise les indirections avec d'autre variable, mais mes collègues s'entête à me faire écrire des {"REQ_XXX.Rubrique",indrubrique} au lieu d'utiliser directement les variables (qui selon moi, est beaucoup plus facile à gérer que des chaînes).


    Je ferais un test et je vous tiendrai au courant.


    Merci

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Je pense que tu confonds avec ceci :

    Si tu utilises les indirections, il y a 2 syntaxes :
    {"REQ_ProtectionAddiotionnelle_Detail.MontantA",indRubrique}
    ou
    {"REQ_ProtectionAddiotionnelle_Detail.MontantA"}
    Ces 2 syntaxes marchent, mais la première est BEAUCOUP plus rapide que la 2ème.

    Ceci étant, si tu compares {"REQ_ProtectionAddiotionnelle_Detail.MontantA",indRubrique} et REQ_ProtectionAddiotionnelle_Detail.MontantA, alors l'utilisation des indirections est probablement plus lente que la syntaxe simple.

    Et donc, quand on utilise les indirections, c'est forcément avec une variable, et jamais avec une chaîne connue/figée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sch est une chaine 
    sch = ...
    {sch, indRubrique} = ...
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Bonsoir,

    Personnellement, j'ai rencontré des cas où l'indirection levait une erreur quand le type de l'élément recherché n'était pas indiqué.
    J'avoue ne pas avoir approfondi le problème et j'ai donc pris l'habitude de toujours utiliser la forme d'indirection avec la constante précisée.

    Cela ne me dérange pas dans la mesure où je n'aime pas les mécanismes 'automatiques' censés me dispenser de tout effort, avec comme corollaire la perte d'une partie du contrôle et de ma discipline ou de ma vigilance.

    Par ailleurs, on peut comprendre que cela soit plus rapide, surtout s'il y a beaucoup de variables, et de types de variables, à balayer.
    [Edit] cela, càd l'indirection avec spécification du type de variable par rapport à l'indirection simple

    Hemgé

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2002
    Messages : 63
    Points : 64
    Points
    64
    Par défaut
    Je suis d'accord avec tbc92.

    Indirection va traduire la base qui est représentée par une chaine alors que la seconde est déjà un pointeur en mémoire.. et comme l'a dit michel.souris, un test de performance serait le plus simple...mais va falloir requêter sur quelques milliers d'enreg pour que se soit parlant

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Personnellement, d'intuition je dirais que l'accès à la variable est plus rapide que l'indirection.

    Rappelez-vous que l'indirection permet de construire "l'appelle au contenu d'une variable" ou si vous préférez de trouver l'allocation mémoire d'une variable, alors que l'appelle de la variable nous donne directement cette allocation.

    Il en découle qu'avec une indirection, le compilateur va devoir parcourir sa "bibliothèque" d'objet afin de trouver la correspondance demandée. D'ailleurs, c'est pour cela qu'on précise le type d'objet recherché, cela accélère la recherche du pointeur en se focalisant uniquement sur le type demandé (ce qui restreint énormément d'objet). Et c'est aussi pour cela que si l'on précise un mauvais type, cela sort une erreur, car le compilateur n'a pas regardé dans le bon scope.

    Cordialement.

  10. #10
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 283
    Points : 263
    Points
    263
    Par défaut
    Bonjour à tous,

    Merci pour vos réponse, c'est également ce que je crois. La variable devrait être plus rapide que l'indirection (sur la même variable). Mais bon, mon patron s'entête sur ce point, je vais me construire une requête sur les logs de mouvement de produit d'un de mes clients. (1-2 millions d'enregistrement).

    Je vais lui mettre ça dans les dents héhé.

    Je vous ferais un suivi pour ça

    @+

Discussions similaires

  1. recherche arborescence plus rapide
    Par e-steel dans le forum VB 6 et antérieur
    Réponses: 19
    Dernier message: 30/01/2006, 16h22
  2. Réponses: 16
    Dernier message: 19/05/2005, 16h20
  3. [FB1.5]Quelle est la requete la plus rapide ?
    Par Sitting Bull dans le forum SQL
    Réponses: 4
    Dernier message: 10/12/2004, 13h46
  4. [VB6] timer plus rapide que 1 d'interval
    Par windob dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 24/02/2004, 00h16
  5. Réponses: 8
    Dernier message: 31/10/2003, 16h21

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