Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/02/2011, 13h41   #1
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
Par défaut Index et statistiques

Parmis les bonnes pratiques de gestion d'un serveur SQL, il faut que les index soient coorect (défragmenté) et lers statistique à jour.

Cependant, j'ai quelques questions à ce sujet.

Il existe un plan de maintenance qui permet de mettre à jour les statistiques et les index. Cependant, cette opération est gourmande en espace disque. La base de données étant en mode de récupération complet, cela fait accroître démesuérement la taille du fichier log.

Dès lors, pour pallier à ce problème, j'ai mis en place un job qui démargmente uniquement les index fragmentés.

C'est au niveau des statistiques que j'ai un soucis.

- Est-ce que la mise à jour d'un index met à jour la statistique associée ?
- Au niveau paramètre de la base de données, le flag "mise à jour automatique des statistiques" est positionné à ON. Pourtant, certaines statistiques ,ne sont pas à jour. Faut-il alors néanmoins passer par le plan de maintenance consistant à mettre à jour toutes les statistiques ?
- Au niveau paramètre de la base de données, faut-il mettre à jour les statistiques en temps réel ou de manière asynchrone ?

- Est-ce que le mode de récupération BULK LOGGED me permettrait d'échapper à l'inconvéniant de l'accroissement du log pendant la phase de défragmentation des bases de données ?
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 13h46   #2
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
Bon, pour le mode BULK LOGGED, il y a une réponse sur ce site.

http://blog.developpez.com/mikedavem...ode-de-recupe/
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/03/2011, 14h40   #3
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 950
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 950
Points : 17 769
Points : 17 769
1) statistiques : elles sont recalculées lorsque :
1.1 - vous faites une opération de reconstruction d'index (REBUILD) mais pas de défragmentation (DEFRAG, REORGANIZE)
1.2 - vous avez mis le paramètre de base de données AUTO_UPDATE_STATISTICS à ON, lorsqu'une demande de plan pouvant concerner cette statistique se rend compte de son obsolescence (seuil atteint)
1.3 - vous avez mis le paramètre de base de données AUTO_UPDATE_STATISTICS_ASYNC à ON (version Enterprise uniquement), lorsque le seuil d'obsolescence est atteint et qu'il a un ppeu de temps pour le faire (iddle)
1.4 - Manuellement si vous lancez la commande UPDATE STATISTICS ...

2) journalisation :
Les statistiques ne sont jamais journalisées, mais la création d'index oui.
En mode FULL la commande d'indexation et la totalité de l'arbre d'index sont écrit dans le journal. En mode BULK LOGGED ou SIMPLE seule la commande CREATE INDEX est journalisée mais pas les données ce qui économise énormément le volume du journal.
Vous pouvez passer d'un mode de journalisation à l'autre par à tout moment par le commande ALTER DATABASE ... SET RECOVERY { SIMPLE, BULK_LOGGED | FULL }

Enfin, il vaut mieux :
défragmenter les index si la fragmentation est de plus de 10% et moins de 30,
reconstruire les index si la fragmentation est de plus de 30%,
recalculer les stats sur un échentillon lorsque la table est grande (plus de 10000 pages par exemple).


A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2011, 16h08   #4
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 667
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 667
Points : 8 715
Points : 8 715
Et enfin utiliser l'option WITH COLUMNS de l'instruction UPDATE STATISTICS sans quoi vous perdez le bénéfice de la reconstruction des index.
En effet dans ce cas, le taux d'échantillonnage est de 100%.

Si vous faites un UPDATE STATISTICS sans l'option WITH COLUMNS, toutes les statistiques prennent le même taux d'échantillonnage, qui pour les très grosses tables est faible.

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 15h54   #5
Membre habitué
 
Inscription : janvier 2008
Messages : 212
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 212
Points : 135
Points : 135
Merci pour les info.
A+
Philippe Robert est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h16.


 
 
 
 
Partenaires

Hébergement Web