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

Administration Oracle Discussion :

Scheduler et statistic


Sujet :

Administration Oracle

  1. #1
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut Scheduler et statistic
    Bonjour,
    je travaille sur une base Oracle 11gR2 installé sur un OS AIX 6.1.En tant que nouveau DBA je voudrais générer les statistiques sql pour un certain schéma afin d'optimiser les performances et avoir vos avis.
    j'ai écrit ces deux scripts qui devraient faire la même chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
       job_name             => 'stat_duschema',
       job_type             => 'PLSQL_BLOCK',
       job_action           => 'BEGIN EXEC DBMS_STATS.gather_schema_stats('schema', cascade=>TRUE); END;',
       start_date           => 'aujourd'hui à 23h 15',
       repeat_interval      => 'FREQ=DAILY'; BYHOUR=23', 
     
       enabled              =>  TRUE,
       comments             => 'récupère les stat de mon schéma');
    END;
    /

    l'autre script plus pointu est:

    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
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
       job_name             => 'stat_duschema',
       job_type             => 'PLSQL_BLOCK',
       job_action           => 'BEGIN exec dbms_stats.gather_schema_stats( - 
                                 ownname          => 'schema', - 
                                 estimate_percent => dbms_stats.auto_sample_size, - 
                                 method_opt       => 'for all columns size repeat', - 
                                 degree           => 34 -   );  END;',
       start_date           => 'aujourd'hui à 23h 15',
       repeat_interval      => 'FREQ=DAILY'; BYHOUR=23', 
     
       enabled              =>  TRUE,
       comments             => 'récupère les stat de mon schéma');
    END;
    première question j'ai du mal à paramétrer l'heure de démarrage ce soir à 23h 15 min.
    Deuxième question, des deux scripts lequel semble le mieux en terme de temps de calcul.
    troisième question, comment pourrais-je savoir que le script s'est bien exécuté en venant au bureau demain matin? interrogation d'une vue?

    Merci d'avance
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Pour la date du jour à 23h15, vous pouvez faire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select trunc(sysdate) + 23/24 + 15/24/60
      from dual;
    Ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select trunc(sysdate) + interval '0 23:15:00' day to second
      from dual;

  3. #3
    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 ailleurs, dans job_action supprimez EXEC qui est un raccourci sqlplus pour begin end;
    Quelques exemples ici :
    Examples of Using the Scheduler

  4. #4
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Merci de vos remarques et suggestion.
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

  5. #5
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Points : 1 359
    Points
    1 359
    Par défaut
    Citation Envoyé par PaulNero Voir le message
    Bonjour,
    Deuxième question, des deux scripts lequel semble le mieux en terme de temps de calcul.
    Si vous êtes en 11g et que vous êtes en approximate_ndv (vérifiable comme suit)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL> select dbms_stats.get_prefs('APPROXIMATE_NDV') nvd_pref from dual;
     
    NVD_PREF
    ------------------------------------------------------------------------
    TRUE
    Alors le deuxième calcul sera plus rapide et plus précis.

    A votre place, je ferai également attention au calcul des histogrammes (ici repeat = re-calcul les histogrammes pour des colonnes ayant déjà des histogrammes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    method_opt       => 'FOR ALL COLUMNS size repeat'
    Il Faudrait bien comprendre les paramètres que vous utilisez ainsi que leurs conséquences sur votre application.
    Bien Respectueusement
    www.hourim.wordpress.com

    "Ce qui se conçoit bien s'énonce clairement"

  6. #6
    Membre confirmé Avatar de PaulNero
    Homme Profil pro
    DBA Senior Oracle and SQL SERVER
    Inscrit en
    Octobre 2010
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : DBA Senior Oracle and SQL SERVER
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 416
    Points : 470
    Points
    470
    Par défaut
    Merci les gars,
    et pour appliquer le calcul des statistiques décrit ci-dessus, faut il désactiver ou laisser activer l'optimisateur par défautBMS_AUTO_TASK_ADMIN?
    Cordialement,
    J'ose espérer que m'a contribution vous a été d'une grande aide.
    Pensez tout de Même à dire MERCI et marquer RESOLU en cas de satisfaction.
    Paul

Discussions similaires

  1. Scheduled Task
    Par wiglaft dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 22/12/2005, 04h49
  2. Réponses: 5
    Dernier message: 20/10/2005, 10h42
  3. [INFORMIX] : UPDATE STATISTICS
    Par dcollart dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 24/08/2005, 15h03
  4. DTS package scheduling problems
    Par jhaythem dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 10/08/2005, 13h22
  5. script d'analyse oracle : compute statistic
    Par davidudy dans le forum Administration
    Réponses: 7
    Dernier message: 05/08/2004, 15h00

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