SQWareProduction:oracle:bin:sqwora DbmsStats.ksh
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 v2025.10 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 <= 23ai
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 'demo-sqwarebox@dbsqware.com'.
-SendReport : Envoi du rapport d'execution.
-NoMail : Desactive l'envoi de mail sur erreur a demo-sqwarebox@dbsqware.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).
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:
Not sending 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).
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).
Exemples d'utilisation
Sourcing sqwora_Global.lib v2025.10 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
