SQWareProduction:sybase:bin:sqwsyb UpdtStatsDatabase.ksh

From Wiki_dbSQWare
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Presentation

Script $gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh :


update index Statistics
use the command 'update index Statistics $lvsqw_Owner.$lvsqw_Table'
compute Statistics on all indexed columns
you can also force delete with 'delete Statistics $lvsqw_Owner.$lvsqw_Table'
dynamically calculates a sample to put option 'with sampling=$lvsqw_SamplePct percent'



Online help

The online help is available for most scripts with the -h option.
Ex: $gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -h
Content of this assistance :

Sourcing sqwsyb_Global.lib v2025.06 SQWareProduction for Sybase (dbSQWare) ... 

Usage: sqwsyb_UpdtStatsDatabase.ksh [-h] -I <dataserver> [+ options]

DESCRIPTION
   sqwsyb_UpdtStatsDatabase.ksh 'update index statistics table' for all tables
SUPPORT
   Sybase supported versions: 15 <= v <= 16.0

PARAMETERS
     -I  dataserver     : Target dataserver.
     -D  database       : Database name.
OPTIONS
     -h                 : Display the full usage.
     -s                 : Display samples of usage.
     -IT   listtables   : List of tables to run update statistics on (by default all).
     -ET   listtables   : Tables list to exclude.
     -IL   likeclause   : Like clause to generate tables list (example: 'tbl%').
     -EL   likeclause   : Like clause to exclude tables (example: 'notbl%').
     -WCT  whereclause  : Where clause to generate tables list.
     -FSS  SampleSize   : To force sample size.
     -Del               : Delete stats before compute.
     -NoMail            : Deactivate sendmail on error demo-sqwarebox@dbsqware.com (by default, send on error).
     -FRT       code    : Force return code value on error.
     -Dist              : For distant connection to database (change $gvsqw_DbaUser to $gvsqw_DistDbaUser ).
     -Type type         : Type of statistics 'default','index','table','all' (by default index).
     -AddMail   email   : Email address to add at 'demo-sqwarebox@dbsqware.com'.
     -SendReport        : Send execution log report.
     -SizeMaxTable Size : Take into account tables <= $lvsqw_SizeMaxTable Mb (by default, 1000000 Mb).
     -MinPctChange pct  : Min pct change to take table into account (by default, datachange>=10).
     -Hashing           : Enable hashing (when rowcount >= 1000000) when ASE version >= 15.7 ESD#2 or SP50 (by default, False).
     -NoHashing         : Disable hashing.
     -HashSize  Size    : Minimum rowcount for hashing (by default, 1000000).
     -Locale    locale  : Force Locale for help display (fr,en).
     -Exec              : Run update statistics (by default, display generated commands).

Note:
To be sure the aid is accurate, refer directly to the online help script -h option.


Error management

Errors passing arguments

This type of message is generated:

Lack 'dataserver' parameter, Usage: sqwsyb_UpdtStatsDatabase.ksh [-h] -I <dataserver> [+ options]
For full help : sqwsyb_UpdtStatsDatabase.ksh -h

If you are connecting through a terminal, no mail will be sent and you will have more this kind of message:

Not sending mail because you are in connected mode !!!
Lack 'dataserver' parameter

If you are not connected to a terminal, the error message appears and is sent by mail to the address contained in the variable $gvsqw_GlobalMail (See help customize this variable). The subject line will always start by "$gvsqw_MailMsg_sybase : " (See help customize this variable).

Note:
Sending mail can be disabled by the option -NoMail for one execution.


Execution errors

Whether you are or not connected to a terminal, the error message appears and an email containing a summary of treatment errors is sent to the address contained in the variable $gvsqw_Mail_sybase (See help customize this variable). The subject line will always start by "$gvsqw_MailMsg_sybase : " (See help customize this variable).

Note:
Sending mail can be disabled by the option -NoMail for one execution.


Usage examples

Sourcing sqwsyb_Global.lib v2025.06 SQWareProduction for Sybase (dbSQWare) ... 

#Standard help for script sqwsyb_UpdtStatsDatabase.ksh:


$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -h
#Display online help for this script

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -Locale en -h
#Display online help for this script with forcing of the 'en' locale (by default locale managed by $gvsqw_Locale)

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -s
#Display usage examples for this script

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName>
#Generate commands but don't execute them !

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -Exec
#Execute update index Statistics on the target database

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -Dist -Exec
#Analyze of all tables for all the databases for the non-local instance $DSQUERY with distant connection
#You need to register credentials to use for distant connection to the instance (user and so on) in file $gvsqw_DistPasswdFile

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -Hashing -HashSize <NumericValue> -Exec
#Enables hashing with a size managed by gvsqw_WithHashing variable (by default, 1000000)

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -NoHashing -Exec
#Disable hashing (by default, gvsqw_WithHashing='False')

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -SizeMaxTable <NumericValue> -Exec
#Update stats only from table of max 1000000 Mo (by default, $gvsqw_DefSizeMaxTableUpdtStats=1000000)

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -MinPctChange <NumericValue> -Exec
#Update index statistics on table modified of at least $lvsqw_MinPctChange %

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -Type <Type> -Exec
#Execute generated commands and change statisticstype ('default','index','table','all')

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -FSS <SampleSize> -Exec
#To force sample size 'with sampling=<SampleSize> percent'
#by default, script dynamically calculates this sample

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -Del -Exec
#delete statistics before compute them: 'delete statistics $lvsqw_Owner.$lvsqw_Table'

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -IT 'TblName1,TblName2' -Exec
#Execute generated commands for only the 2 specified tables

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -ET 'TblName3,TblName4' -Exec
#Execute generated commands except for the 2 specified tables

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -IL '%_PROD' -Exec
#Clause like to generate dynamic tables list to include (example: 'dbprod%')

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -EL '%_TESTS' -Exec
#Clause like to generate dynamic tables list to exclude (example: 'dbtest%')

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -WCT '<condition>' -Exec
#Clause where to generate dynamic tables list to include

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -AddMail 'mymail1@mydomaine.com,mymail2@mydomaine.com' -Exec
#Add the mail list to the default address managed by the variable gvsqw_GlobalMail

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -SendReport -Exec
#Send the log by email at the end of the treatment even if there is no error

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -NoMail -Exec
#Disables sending an email on error to $gvsqw_GlobalMail (by default, send on error)

$gvsqw_SybBin/sqwsyb_UpdtStatsDatabase.ksh -I $DSQUERY -D <DbName> -FRT <NumericValue> -Exec
#Force return code to '<NumericValue>' on error (if no error, "exit 0!")
#You can also force return code of this script on all your
#environnement if you set the variable: $gvsqw_ForcedReturnCodeScript_sqwsyb_UpdtStatsDatabase=<NumericValue>
#in configuration file $gvsqw_SybBin/../etc_cust/sqwsyb_GlobalVar.cfg

Note:
To be sure the examples are accurate, refer directly to the online help script -s option.