|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2005 Messages : 7 ![]() |
Bonjour,
En fait, je voulais connaitre le meilleur moyen de gérer les statistics et votre avis sur la meilleur facon de faire, entre l'utilisation d'un procédure stockée ou par script ksh. PAR SCRIPTS: (la base est passée en paramètre au lancement du script) isql -Usa -P${SYB_PWD} -S${DSQUERY} -D${BASE} -o${LOGS_DIR}/StatBase_${STATDATE}.log << EOF set nocount on go declare @name varchar(20) select name into #tabletmp from sysobjects where type='U' select @name=name from #tabletmp while (select count(*) from #tabletmp) != 0 begin execute ("update statistics " + @name) print @name execute ("update index statistics " + @name) execute ("sp_recompile " + @name) delete #tabletmp where name=@name select @name=name from #tabletmp end go drop table #tabletmp go exit EOF OU PAR PROCEDURE STOCKEE: (procedure créer sur chacunes des bases) DECLARE @spid varchar(30) DECLARE @Sql varchar(50) DECLARE Decon CURSOR FOR SELECT name FROM sysobjects WHERE type='U' ORDER BY name OPEN Decon FETCH Decon INTO @spid WHILE @@sqlstatus <> 2 BEGIN SELECT @Sql="update statistics "+@spid PRINT @Sql EXECUTE (@Sql) SELECT @Sql="update index statistics "+@spid EXECUTE (@Sql) SELECT @Sql="sp_recompile "+@spid EXECUTE (@Sql) FETCH Decon INTO @spid END CLOSE Decon DEALLOCATE CURSOR Decon merci d'avance Anthony |
|
|
00
|
|
|
#2 |
![]() ![]() |
L'utilisation d'un script ou d'une proc stockée est pour moi un peu blanc bonnet/bonnet blanc... Le résultat est le même.
Par contre, il est totalement superflu d'exécuter "update statistics" ET "update index statistics", puisque la première forme est un sous-ensemble de la deuxième. Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : novembre 2005 Messages : 7 ![]() |
Bonjour
Effectivement, la question peu sembler superflu, en fait elle portait plus sur la facon dont sybase fonctionne et notamment au niveau des performances liées a l'emploi de l'un au l'autre des solutions. (utilisation des curseurs!!!) Oui merci effectivement le update statistics analyse la première colonne de l'index et l' update index statistics analyse toutes les colonnes de l'index. Merci Anthony |
|
|
00
|
|
|
#4 |
![]() ![]() |
L'utilisation ou non d'un curseur dans ce cas n'est pas significative, puisqu'on va chercher un nombre relativement limité de tables, et que l'update statistique de chaque table prends du temps et pas mal de ressources...
Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com