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

Oracle Discussion :

optimisation avec vue dynamique


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 117
    Par défaut optimisation avec vue dynamique
    Bonjour,

    Afin d'optimiser un traitement, je souhaite créer une vue dynamiquement au début de celui ci (je ne peux pas la créer avant car elle utilise des paramètres du traitement ), mais je ne suis pas convaincu de l'efficacité.
    un expert peut il me donner son avis?

  2. #2
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    salut,
    tu peux nous en dire un peu plus STP ?
    c'est pour faire quel type de traitement ?

    suivant le cas, tu es sûr de devoir faire une vue, et pas juste du SQL dynamique ?

    un petit exemple en passant d'une procédure avec du SQL dynamique, c'est une procédure qui renvoie un curseur à l'application en réponse à un écran de recherche, en fonction des paramètres (critères de recherche) entrés par l'utilisateur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    Procedure SearchCursor (
                            pd_DateFrom     IN      Date        ,
                            pd_DateTo       IN      Date        ,
                            pn_BillType     IN      Number      ,
                            pn_BillStatus   IN      Number      ,
                            pn_PeriodMaster IN      Number      ,
                            RetCursor       OUT     sys_refcursor
                           )
    Is
        vSQL                                Long ;
     
    Begin
     
        vSQL :=     'Select '
                ||          'VDBillHeader_i '
                ||          ', VDBillTypologyClassItem.FGetTypologyClassItemCode(T_BillType_i) as BILLTYPE '
                ||          ', VDBillTypologyClassItem.FGetTypologyClassItemCode(T_BillStatus_i) as BILLSTATUS '
                ||          ', DateFrom '
                ||          ', DateTo '
                ||          ', decode(IsPeriodMaster '
                ||                  ', 0 '
                ||                  ', ''Non'' '
                ||                  ', 1 '
                ||                  ', ''Oui'' '
                ||                  ')                     as LASTBILL '
                ||          ', BillComment '
                ||  'From    VDBillHeader '
                ||  'Where   1 = 1 ' ;
     
        If pd_DateFrom is not Null
        Then
            vSQL := vSQL
                ||  'And    DateFrom = '''|| pd_DateFrom ||''' ' ;
        End If ;
     
        If pd_DateTo is not Null
        Then
            vSQL := vSQL
                ||  'And    DateTo = '''|| pd_DateTo ||''' ' ;
        End If ;
     
        If pn_BillType is not Null
        Then
            vSQL := vSQL
                ||  'And    T_BillType_i = '|| pn_BillType ||' ' ;
        End If ;
     
        If pn_BillStatus is not Null
        Then
            vSQL := vSQL
                ||  'And    T_BillStatus_i = '|| pn_BillStatus ||' ' ;
        End If ;
     
        If pn_PeriodMaster is not Null
        Then
            vSQL := vSQL
                ||  'And    IsPeriodMaster = '|| pn_PeriodMaster ||' ' ;
        End If ;
     
        Open RetCursor for vSQL ;
     
    End SearchCursor ;

  3. #3
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    créer une vue dynamiquement... chez moi ça veux dire faire du SQL dynamique... non ?

  4. #4
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    diantre Fed !
    tu me coupe l'herbe sous le pied pendant que j'édite / complète ma réponse !!

  5. #5
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    les grands esprits se rencontrent

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 117
    Par défaut
    au départ, j'avais une boucle dans laquelle j'appelais 2 curseurs, chaque curseur durant 1 à 2 s * par 10 000 occurences soit une dixaine d'heure. j'ai donc essayé de créer 2 vues et de remplacer mes 2 curseurs par un simple select * from vue...mais je n'ai pas l'impression que ça fonctionne (je n'ai pas fini de tester)

Discussions similaires

  1. [syntaxe]Creation table avec nom dynamique
    Par ZuZu dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 23/09/2004, 18h01
  2. Creation d'une vue dynamique ?
    Par Simeans2004 dans le forum Administration
    Réponses: 5
    Dernier message: 01/07/2004, 15h25
  3. [Plugin] Création d'une vue dynamiquement
    Par The Bonze dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 15/06/2004, 13h23
  4. Conf DNS pour serveur mail avec IP dynamique ?
    Par ovh dans le forum Réseau
    Réponses: 9
    Dernier message: 14/06/2004, 22h55
  5. Réponses: 12
    Dernier message: 26/04/2004, 08h32

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