SQWareProduction:oracle:bin:sqwora DbmsStats.ksh

De WikiFr_dbSQWare
Révision datée du 14 avril 2019 à 18:03 par BatchUser (discussion | contributions) (Updated by BatchUser)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Presentation

Script $gvsqw_OraBin/sqwora_DbmsStats.ksh :


recolte des statistique avec DBMS_STATS



Aide en ligne

L'aide en ligne est accessible dans la plupart des scripts avec l'option -h.
Ex: $gvsqw_OraBin/sqwora_DbmsStats.ksh -h
Contenu de l'aide :

Sourcing sqwora_Global.lib v2024.07 SQWareProduction for Oracle (dbSQWare) ... 

Utilisation: sqwora_DbmsStats.ksh [-h] -I <instance> [+ options]

DESCRIPTION
   sqwora_DbmsStats.ksh Collecte les statistiques avec DBMS_STATS
SUPPORT
   Oracle versions supportees: 9iR2 <= v <= 21c

PARAMETERS
     -I  instance       : Instance cible pour DBMS_STATS.
OPTIONS
     -h                 : Affichage de l'aide complete.
     -s                 : Affichage des exemples d'utilisation.
     -U  Users          : Liste des schemas (tous sauf SYS par defaut),
                            pour collecter les statistiques sur SYS, il doit etre le seul dans la liste.
     -EU Users          : Liste des schemas a exclure.
     -Pdb pdb_name      : pdb_name pour multitenant.
     -NLS nls_numeric   : Change la valeur du parametre SQL NLS_NUMERIC_CHARACTERS (par defaut: '').
     -PCT estimate_pct  : Determine le pourcentage de ligne a echantilloner, entre 0.000001 et 100,
                                 vous pouvez utiliser la variable DBMS_STATS.AUTO_SAMPLE_SIZE (par defaut: 10).
     -BSA block_sample  : Determine le type d'echantillonage par blocs aleatoires ou par lignes aleatoires (par defaut: TRUE).
     -MOP method_opt    : Definir la methode preferee 'FOR ALL [INDEXED | HIDDEN] COLUMNS [size_clause]' (par defaut: FOR ALL INDEXED COLUMNS SIZE REPEAT),
                                                                                                    (pour SYS FOR ALL COLUMNS SIZE SKEWONLY).
     -DEG degree        : Determine le degre de parallelisme utilise pour la collecte des statistiques,
                                 vous pouvez utiliser la variable DBMS_STATS.DEFAULT_DEGREE (par defaut: 1).
     -GRA granularity   : Granularite des statistiques a collecter, seulement en cas de partinionnement (par defaut: ALL).
     -CAS cascade       : Determine s'il faut collecter des statistiques d'index dans le cadre de la collecte de statistiques de table,
                                 vous pouvez utiliser la variable DBMS_STATS.AUTO_CASCADE (par defaut: TRUE).
     -OPT options       : Spécifie quels objets nécessitent la collecte de statistiques (par defaut: GATHER AUTO),
                                                                                       (pour SYS GATHER).
     -FRT return_code   : Valeur forcee du code retour sur erreur.
     -Dist              : Pour connexion distante a la base de donnees (change $gvsqw_DbaUser to $gvsqw_DistDbaUser@$ORACLE_SID ).
     -AddMail   email   : Adresse Email a ajouter a 'pmexpdba@gmail.com'.
     -SendReport        : Envoi du rapport d'execution.
     -NoMail            : Desactive l'envoi de mail sur erreur a pmexpdba@gmail.com (par defaut, envoi sur erreur).
     -Locale    locale  : Force la Locale d'affichage de l'aide (fr,en).
     -Exec              : Collecte les statisticques (par defaut, affiche les commandes generees).

Information.png
Information:
Pour etre sur d'avoir une aide a jour, reportez vous directement a l'aide en ligne du script avec l'option -h .


Traitement de l'erreur

Erreurs de parse des arguments

Ce type de message est genere:

Lack instance parameter, Utilisation: sqwora_DbmsStats.ksh [-h] -I <instance> [+ options]

Si vous vous connectez via un terminal, aucun mail ne sera envoyé et vous aurez plutôt ce type de message:

No send mail because you are in connected mode !!!
Lack instance parameter

Si vous n'êtes pas connecté à un terminal, le message d'erreur apparaît et est envoyé par mail à l'adresse contenue dans la variable $gvsqw_GlobalMail (Voir l'aide pour personnaliser cette variable). L'objet commence toujours par "$gvsqw_MailMsg_oracle : " (Voir l'aide pour personnaliser cette variable).

Information.png
Information:
L'envoi de mail peut être désactivé par l'option -NoMail pour une exécution.


Execution errors

Que vous soyez ou non connecté à un terminal, le message d'erreur apparaît et un mail contenant un résumé des erreurs de traitement est envoyé à l'adresse contenue dans la variable $gvsqw_GlobalMail (Voir l'aide pour personnaliser cette variable). L'objet commence toujours par "$gvsqw_MailMsg_oracle : " (Voir l'aide pour personnaliser cette variable).

Information.png
Information:
L'envoi de mail peut être désactivé par l'option -NoMail pour une exécution.


Exemples d'utilisation

Sourcing sqwora_Global.lib v2024.07 SQWareProduction for Oracle (dbSQWare) ... 

#Standard (Locale) help for script sqwora_DbmsStats.ksh:

$gvsqw_OraBin/sqwora_DbmsStats.ksh -h
#Affichage de l'aide en ligne pour ce script

$gvsqw_OraBin/sqwora_DbmsStats.ksh -Locale fr -h
#Affichage de l'aide en ligne pour ce script avec forcage de la locale 'fr' (Locale par defaut geree par $gvsqw_Locale)

$gvsqw_OraBin/sqwora_DbmsStats.ksh -s
#Affichage des exemples d'utilisation pour ce script

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID
#Genere les commandes mais ne les execute pas !

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -Exec
#Recolte des statistique de l'instance $ORACLE_SID avec DBMS_STATS

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -Dist -Exec
#Recolte des statistique de l'instance non locale $ORACLE_SID avec DBMS_STATS et a travers une connexion distante
#Vous devez saisir toutes les informations d'authentification a utiliser pour la connexion distante a l'instance dans le fichier $gvsqw_DistPasswdFile

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -NLS ', '-Exec
#change la valeur du parametre SQL NLS_NUMERIC_CHARACTERS en ", " : virgule et espace (par defaut ".," gere par $NLS_NUMERIC_CHARACTERS)

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -U <UserName> -Exec
#Collecte les statistics avec DBMS_STATS pour les schemas listes dans <UserName> (par defaut tout sauf SYS, pour collecter SYS il doit etre le seul liste)

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -U 'SYS' -Exec
#Collecte les statistics avec DBMS_STATS seulement pour le schema SYS

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -EU 'repadmin' -Exec
#Exclut le schema repadmin de la collecte des statistics avec DBMS_STATS

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -PCT '25'-Exec
#Determiner le pourcentage de lignes a echantillonner, utiliser la variable DBMS_STATS.AUTO_SAMPLE_SIZE (par defaut 10, sur dbsqware gérée par $gvsqw_Stat_estimate_percent)

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -BSA 'FALSE' -Exec
#Determine le type d'echantillonage par blocs aleatoires ou par lignes aleatoires, ici par lignes (par defaut, par blocs : TRUE)

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -MOP 'FOR ALL INDEXED COLUMNS SIZE AUTO' -Exec
#Definie la methode de collecte voulue global, schema, database ou dictionary level, par defaut : FOR ALL INDEXED COLUMNS SIZE REPEAT

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -DEG '2' -Exec
#Determine le degre de parallelisme utilise pour collecter les statistiques (par defaut 1)

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -GRA 'GLOBAL AND PARTITION' -Exec
#Granularite des statistiques a collecter (seulement pertinent si la table est partitionne, par defaut ALL)

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -CAS 'FALSE' -Exec
#Determine s'il faut collecter des statistiques d'index dans le cadre de la collecte de statistiques de table (default is TRUE)

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -OPT 'GATHER EMPTY' -Exec
#Collecte les statistics des objets qui n'ont pas de statistics (par defaut GATHER AUTO, ou GATHER lorsque -U 'SYS')

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -Pdb <pdb_name> -Exec
#Specifie le nom de la pugable database <pdb_name> pour les environnements multi-tenant

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -AddMail 'mymail1@mydomaine.com,mymail2@mydomaine.com' -Exec
#Ajoute la liste de mail a l'adresse par defaut geree par $gvsqw_GlobalMail

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -SendReport -Exec
#Envoie la log par mail a la fin du traitement meme s'il n'y a pas d'erreur (par defaut, seulement en cas d'erreur)

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -NoMail -Exec
#Desactive l'envoi de mail sur erreur a $gvsqw_GlobalMail (par defaut, envoi sur erreur)

$gvsqw_OraBin/sqwora_DbmsStats.ksh -I $ORACLE_SID -FRT <NumericValue> -Exec
#Force le code retour a '<NumericValue>' sur erreur (si pas d'erreur, "exit 0"!)
#Vous pouvez aussi forcer le code retour de ce script pour tous
#si vous settez la variable d'environnement: $gvsqw_ForcedReturnCodeScript_sqwora_DbmsStats=<NumericValue>
#dans le fichier de configuration $gvsqw_OraBin/../etc_cust/sqwora_GlobalVar.cfg
Information.png
Information:
Pour être sûr que les exemples sont exacts, reportez-vous directement à l'option d'aide en ligne du script -s .