Réindexations simultanées

Le
Alexandre Auguet
Bonjour à tous.

J'aimerai savoir s'il existe une contre indication particulière à lancer
des ordres DBCC DBREINDEX en parallèle sur une même base de données. Le
contexte : SQL Server 2000 SP4, 8 CPU, 8Go RAM, base d'environ 60Go sur
disques en SAN 2Gb/s, 4000 tables.

Nous devons faire des réindexations régulières (sur préconisation de
l'éditeur du progiciel) mais la fenêtre de maintenance étant
relativement courte, je cherche à optimiser la procédure. Pendant cette
période, aucun autre accès n'est effectué sur la base.

J'ai pu tester la réindexation simultanée de deux index ordonnés en
cluster sur deux tables différentes, à priori pas de problèmes en vue,
mais je préfère avoir un avis sur la question si vous avez déjà été
confronté à ce cas de figure.

Merci d'avance,
Alexandre.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Med Bouchenafa
Le #11840201
A partir du moment que c'est sur des tables differentes, je ne vois pas ce
qui peut poser probléme

--
Bien Cordialement
Med Bouchenafa


"Alexandre Auguet" a écrit :

Bonjour à tous.

J'aimerai savoir s'il existe une contre indication particulière à lancer
des ordres DBCC DBREINDEX en parallèle sur une même base de données. Le
contexte : SQL Server 2000 SP4, 8 CPU, 8Go RAM, base d'environ 60Go sur
disques en SAN 2Gb/s, 4000 tables.

Nous devons faire des réindexations régulières (sur préconisation de
l'éditeur du progiciel) mais la fenêtre de maintenance étant
relativement courte, je cherche à optimiser la procédure. Pendant cette
période, aucun autre accès n'est effectué sur la base.

J'ai pu tester la réindexation simultanée de deux index ordonnés en
cluster sur deux tables différentes, à priori pas de problèmes en vue,
mais je préfère avoir un avis sur la question si vous avez déjà été
confronté à ce cas de figure.

Merci d'avance,
Alexandre.



[FritesClub] TheKâMaster
Le #11840171
On 22 mar, 10:27, Med Bouchenafa
A partir du moment que c'est sur des tables differentes, je ne vois pas ce
qui peut poser probléme



Merci. C'est bien ce que je pense également, je ne vois qu'une
éventuelle contention au niveau des accès disques. Mais des avis
supplémentaires sont toujours les bienvenus, il peut toujours y avoir
un piège quelque part.
Fred BROUARD
Le #11840111
Alexandre Auguet a écrit :
Bonjour à tous.

J'aimerai savoir s'il existe une contre indication particulière à lancer
des ordres DBCC DBREINDEX en parallèle sur une même base de données. Le
contexte : SQL Server 2000 SP4, 8 CPU, 8Go RAM, base d'environ 60Go sur
disques en SAN 2Gb/s, 4000 tables.

Nous devons faire des réindexations régulières (sur préconisation de
l'éditeur du progiciel) mais la fenêtre de maintenance étant
relativement courte, je cherche à optimiser la procédure. Pendant cette
période, aucun autre accès n'est effectué sur la base.

J'ai pu tester la réindexation simultanée de deux index ordonnés en
cluster sur deux tables différentes, à priori pas de problèmes en vue,
mais je préfère avoir un avis sur la question si vous avez déjà été
confronté à ce cas de figure.

Merci d'avance,
Alexandre.



come le dit med c'est ok si table différente car pose de verrous.
REINDEX est une méthode agressive alors que DEFRAG ne l'est pas.

En revanche il serait peut être plus judicieux de ne pas tout réindexr à
l'aveugle mais :
1) ne reindexer que les index réellement fragmentés
2) ne reindexer que les index de plus d'une extension
3) ne faire les stats que sur des échantillon sie les index dépassent
certains volumes
4) compte tenu de votre fenêtre d'exec, optimiser le choix des index
restructuré par tirage aléatoire.

Si cela vous intéresse j'ai écrit une telle proc pour des VLDB qui est
en exploit chez de grands comptes du web.

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Alexandre Auguet
Le #11840101
, Le 24/03/2007 09:42 :

come le dit med c'est ok si table différente car pose de verrous.
REINDEX est une méthode agressive alors que DEFRAG ne l'est pas.

En revanche il serait peut être plus judicieux de ne pas tout réindexr à
l'aveugle mais :
1) ne reindexer que les index réellement fragmentés
2) ne reindexer que les index de plus d'une extension
3) ne faire les stats que sur des échantillon sie les index dépassent
certains volumes
4) compte tenu de votre fenêtre d'exec, optimiser le choix des index
restructuré par tirage aléatoire.

Si cela vous intéresse j'ai écrit une telle proc pour des VLDB qui est
en exploit chez de grands comptes du web.



Bonjour et merci pour cette réponse.

Actuellement le script de réindexation été développé en VBScript et fait
déjà un premier tri dans les index en récupérant les informations
renvoyées par DBCC SHOWCONTIG sur chaque index (pas complètement en
fait, suite à une limitation du VBScript sur certaines méthodes SQLDMO).

Les différents points que vous citez sont ou seront pris en compte dans
le prochain développement (exécutable en .NET cette fois-ci, pour
différentes raisons dont le multi-threading pour une réindexation
simultanée de plusieurs index), le but étant de réindexer au mieux et au
plus vite les bases.

La défragmentation est aussi possible, cela est déjà fait pour des bases
où nous ne disposons pas de fenêtre de maintenance sans accès
utilisateur, mais ce n'est pas le souhait pour le moment de notre
maitrise d'oeuvre pour le cas spécifié ici.

Par contre, je serai intéressé par votre méthode de sélection des index
utilisée par votre procédure, cela pourra certainement m'être utile.

Cordialement,
Alexandre.
Publicité
Poster une réponse
Anonyme