IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Oracle_Man

Bloc notes Oracle

Noter ce billet
par , 17/04/2020 à 11h40 (354 Affichages)
DBMS_STATS

On me demande toujours comment calculer les statistiques sur une table. Voilà :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
begin
DBMS_STATS.GATHER_TABLE_STATS (
              ownname => 'xxx',
          tabname => 'ma_table',
          CASCADE => TRUE,
          estimate_percent => dbms_stats.auto_sample_size,
          method_opt => 'for all indexed columns size auto'
          );
end;

Le problème est que cela marche bien dans 95% des cas. J'ai réussi à me faire coincer par un projet où il n'avait qu'une seule colonne indexée (par un seul index donc)(et même pas une PK). Il faut alors lancer plus de statistiques sur toutes les colonnes, ce que l'on fait rarement car le temps de calcul peut être long. Mais bon, pas d'autre solution dans notre cas :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
begin
DBMS_STATS.GATHER_TABLE_STATS (
              ownname => 'xxx',
          tabname => 'ma_table',
          CASCADE => TRUE,
          estimate_percent => dbms_stats.auto_sample_size,
          method_opt => 'for all columns size auto'
          );
end;

La vie est mal faite parfois.

Listener Oracle

Démarrer et stopper le listener Oracle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
lsnrctl start

lsnrctl stop
C'est une manipulation basique mais j'oublie tout le temps la syntaxe "lsnrctl"

Tracer les sessions Oracle

Un petit problème survient quand vous souhaitez tracer le SQL (sous Oracle) sans arrêter la base de données d'une application. Facile, vous êtes capables maintenant avec les nouvelles versions d'Oracle de faire un trigger de type after logon.

Un petit trigger système pour tracer toutes les connexions :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
create or replace trigger trg_enable_trace_at_logon
after logon
on database
begin
   execute immediate 'alter session set sql_trace=TRUE';
exception
  when others then
  NULL;
end trg_enable_trace_at_logon;
/

Il suffit d'adapter selon les besoins (si vous ne souhaitez tracer qu'un user, un serveur d'application, ...)

Envoyer le billet « Bloc notes Oracle » dans le blog Viadeo Envoyer le billet « Bloc notes Oracle » dans le blog Twitter Envoyer le billet « Bloc notes Oracle » dans le blog Google Envoyer le billet « Bloc notes Oracle » dans le blog Facebook Envoyer le billet « Bloc notes Oracle » dans le blog Digg Envoyer le billet « Bloc notes Oracle » dans le blog Delicious Envoyer le billet « Bloc notes Oracle » dans le blog MySpace Envoyer le billet « Bloc notes Oracle » dans le blog Yahoo

Mis à jour 17/04/2020 à 23h39 par Malick (Ajout balises code + Gras)

Tags: oracle
Catégories
Sans catégorie

Commentaires

  1. Avatar de CinePhil
    • |
    • permalink
    Billet à compléter au fil du temps d'autres pense-bêtes. J'ai un fichier texte au boulot qui contient quelques requêtes utiles du genre chercher où se trouve cette foutue contrainte qui vient de me planter une erreur de non satisfaction...

    Ce serait mieux avec le langage SQL précisé sur les balises code et un peu de mise en forme, notamment des différentes rubriques, en gras colorié par exemple.