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

SQL Oracle Discussion :

ARRAYSIZE: modification définitive de la valeur


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Octobre 2010
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 54
    Points : 56
    Points
    56
    Par défaut ARRAYSIZE: modification définitive de la valeur
    Bonjour à tous,

    Dans le cadre de l'optimisation de ma base de données où une de mes applications requiert la récupération de plusieurs dizaines de milliers de lignes, je souhaiterai modifier la valeur de ARRAYSIZE.
    Je sais que l'on peut le modifier via:
    Toutefois, je voudrais modifier cette valeur de façon définitive et non au cours d'une session. Par défaut, elle vaut 15, mais je voudrais qu'elle soit positionnée définitivement à 500.
    Est-il possible de réaliser une telle chose?

    Merci d'avance!

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252

  3. #3
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 075
    Points
    8 075
    Par défaut
    Citation Envoyé par thisistheend Voir le message
    . Par défaut, elle vaut 15, mais je voudrais qu'elle soit positionnée définitivement à 500.
    Ca serait intéressant que vous nous fassiez part de l'amélioration (chiffrée) des temps de traitement suite à ce changement.
    Les quelques fois où j'ai voulu suivre cette piste, ça n'a jamais été très concluant.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Pomalaix Voir le message
    Ca serait intéressant que vous nous fassiez part de l'amélioration (chiffrée) des temps de traitement suite à ce changement.
    Les quelques fois où j'ai voulu suivre cette piste, ça n'a jamais été très concluant.
    Cela est très simple
    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
     
    SQL> r
      1* select * from all_objects
     
    25119 ligne(s) sélectionnée(s).
     
    Ecoulé : 00 :00 :01.15
     
    Statistiques
    ----------------------------------------------------------
              0  recursive calls
              0  db block gets
         120029  consistent gets
              0  physical reads
              0  redo size
        1494238  bytes sent via SQL*Net to client
          18906  bytes received via SQL*Net from client
           1676  SQL*Net roundtrips to/from client
            621  sorts (memory)
              0  sorts (disk)
          25119  rows processed
     
    SQL> set arraysize 1
    SQL> r
      1* select * from all_objects
     
    25119 ligne(s) sélectionnée(s).
     
    Ecoulé : 00 :00 :02.14
     
    Statistiques
    ----------------------------------------------------------
              0  recursive calls
              0  db block gets
         132748  consistent gets
              0  physical reads
              0  redo size
        3486146  bytes sent via SQL*Net to client
         138641  bytes received via SQL*Net from client
          12561  SQL*Net roundtrips to/from client
            621  sorts (memory)
              0  sorts (disk)
          25119  rows processed
    [EDIT]
    AskTom
    [/EDIT]

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Par contre SET ARRAYSIZE c'est pour sqlplus donc, à moins que l'application n'utilise sqlplus, il faut regarder dans la doc du driver utilisé.

  6. #6
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 075
    Points
    8 075
    Par défaut
    Citation Envoyé par mnitu Voir le message

    SQL> set arraysize 1
    Petit marrant ! Ca sert à quoi de tester avec 1 quand la valeur par défaut est 15 ??

    Ma question ne porte pas sur le moyen de tester, mais sur les résultats réels.
    Mon expérience est que 15 est une valeur assez bien adaptée, et que son augmentation n'apporte guère d'amélioration.
    Vos résultats de la vraie vie m'intéressent.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  7. #7
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 075
    Points
    8 075
    Par défaut
    Tiens d'ailleurs, sans vouloir faire mon Burleson, faire ce genre de test avec un SET AUTOTRACE TRACE, ce qui semble simple et élégant, n'est pas réaliste quant à l'amélioration concrète qu'on peut tirer de la manoeuvre.

    En effet, quand on ramène sur le client des centaines de milliers de lignes, voire des millions, soit on va les afficher, soit, plus probablement, on va les stocker sur disque. Affichage ou stockage, ceci prend un temps loin d'être négligeable.

    Donc au mieux, le SET AUTOTRACE TRACE indiquera le gain théorique possible si on travaillait uniquement en mémoire.
    Sur des tests réels (avec stockage des résultats), je ne gagne pas mieux que 20% en passant ARRAYSIZE de 15 à 100. Bien entendu, ça dépendra du matériel.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  8. #8
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Cher @Pom

    1 (cas limite) c’est moins bien que 15 qui est moins bien que 100.

    20% c’est 20% plus vite quand même.

    Il n’est pas possible de gagner au niveau de traitement des données ramenées avec arraysize. Si t’écrit tes données sur disque comment arraysize pourrait t’aider ?

    Donc, le test rapide montre ce que tu peux gagner au niveau de la lecture des données et non pas au niveau du traitement global.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/10/2007, 11h03
  2. [Tableaux] Définition de la valeur par défaut
    Par ciel65 dans le forum Langage
    Réponses: 1
    Dernier message: 24/12/2006, 19h01
  3. Récupérer la modification dynamique d'une valeur d'un champ
    Par romaintaz dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/11/2006, 14h09
  4. Historiser des modifications et les anciennes valeurs
    Par el_quincho dans le forum Access
    Réponses: 4
    Dernier message: 29/05/2006, 16h49

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