SQWareProduction:oracle:bin:sqwora DbmsStats.ksh
Sommaire
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).
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:
Begining : 2020-12-15 21:15:27 End : 2020-12-15 21:15:27 Duration : 00:00:00
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 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