IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

OLA: Proc IndexOptimize [2012]


Sujet :

Administration SQL Server

  1. #1
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Par défaut OLA: Proc IndexOptimize
    Bonjour,

    Je cherche à comprendre la proc d'Ola suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    EXECUTE dbo.IndexOptimize
    @Databases = 'USER_DATABASES',
    @FragmentationLow = NULL,
    @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
    @FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
    @Resumable = 'Y'
    Qd est ce que ONLINE ou OFFLINE est déclenchée ...? Pour le degre de fragmentation est ce histoire des 0 à 5 (on fait rien) , 5 à 30 -réorg) puis au delà des 30% (rebuild) ....?

    Merci.

    A+

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    Bonjour,

    Non ! Ce n'est pas dans ce sens qu'il faut comprendre !

    Il s'agit d'un ordre de préséance pour un niveau de fragmentation donné, déjà fixé.

    Le nom du paramètre détermine déjà le niveau de fragmentation (basse, moyenne ou haute).

    Pour chaque niveau de fragmentation (exemple moyenne), le paramètre correspondant (exemple @FragmentationMedium) permet de définir l'ordre de préséance (ou de préférence) pour l'opération à effectuer.

    Exemple
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',

    Signifie que pour un niveau de fragmentation moyenne, privilégier une réorganisation des index, si cela n'est pas possible alors effectuer une reconstruction des index en mode ON LINE, si cela n'est pas possible alors effectuer une reconstruction on mode OFF LINE, etc..

    Notez que certaines opérations ne sont pas toujours possibles. Par exemple, la réorganisation d'un index ne peut être effectuée si, pour le dit index, la propriété ALLOW_PAGE_LOCKS a pour valeur OFF. D'où cette possibilité donnée à l'Administrateur (DBA) de pouvoir opter pour une autre solution, et ce, par ordre de préférence.

    A+

  3. #3
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Par défaut
    Bonjour Hamid,

    Les 3 niveaux: basse, moyenne ou haute

    basse => Degré de fragmentation < 5%.
    moyenne => 5% < Degré de fragmentation < 30%.
    haute => Degré de fragmentation > 30%.

    C'est bien ça ....?

    Merci.

    A+

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    OUI, il s'agit des valeurs (ou seuils) par défaut (Fragmentation <= 5%, > 5% ET <= 30%, > 30%). Ces valeurs et seuils sont toutefois modifiables.
    L'ajustement de ces seuils est généralement guidé par l'amplitude de la fenêtre de tire de votre Plan de Maintenance (durée 2h, 3h, 4h etc.. ..).
    D'autres considérations bien sûr peuvent aussi être prises en compte pour le choix de ces seuils.

    A+

  5. #5
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Par défaut
    Merci bcp Hamid.

    A+

  6. #6
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Par défaut
    Bonjour,

    Je relance cette conversation,

    Pour tester, j'ai besoin d'ajouter la procédure dbo.CommandExecute ?

    Merci.

    A+

  7. #7
    Membre Expert
    Homme Profil pro
    DBA SQL Server
    Inscrit en
    Octobre 2012
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA SQL Server
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 862
    Par défaut
    Je suis presque sûr que tu dois avoir minimum ça :

    CREATE TABLE [dbo].[CommandLog]
    CREATE PROCEDURE [dbo].[CommandExecute]
    CREATE PROCEDURE [dbo].[IndexOptimize]

    Mais j'ai tout dans un script vu que j'utilise l'ensemble des scripts et jobs OLA donc à vérifier.

  8. #8
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Par défaut
    Bonjour,

    J'ai fait un test avec le plan d'OLA:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    The SQL Server Maintenance Solution lets you intelligently rebuild or reorganize only the indexes that are fragmented. In the IndexOptimize procedure, you can define a preferred index maintenance operation for each fragmentation group. Take a look at this code:
    EXECUTE dbo.IndexOptimize @Databases = 'USER_DATABASES',
    @FragmentationLow = NULL,
    @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
    @FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
    @FragmentationLevel1 = 5,
    @FragmentationLevel2 = 30
    J'ai regardé les taux de fragmentation après, j'ai des index NoClustered avec taux de plus 80% par fois ... en gros il n a pas reconstruit les index dont le taux de fragmentation est > 30% ... le job s'est exécuté sans erreur ....
    Comment le forcer à "Rebuilder" ....

    MERCI.

  9. #9
    Membre émérite

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 817
    Billets dans le blog
    2
    Par défaut
    Quel est la taille de Vos indexes ?

    Pour les petits index, la reconstruction ne réduit pas la fragmentation

  10. #10
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Par défaut
    Merci Hamid.

    Pour contrôler le taux de fragmentation, j' ai utilise la requête de SQLPro donc ce n'est pas un ptit index ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT s.name AS TABLE_SCHEMA, o.name AS TABLE_NAME, i.name AS INDEX_NAME,
           ips.avg_fragmentation_in_percent
    FROM   sys.objects AS o
           JOIN sys.schemas AS s ON o.schema_id = s.schema_id
    	   JOIN sys.indexes AS i ON o.object_id = i.object_id
    	   CROSS APPLY sys.dm_db_index_physical_stats(DB_ID(), o.object_id, i.index_id, NULL, NULL) AS ips
    WHERE  ips.page_count > 128
    Par contre j'ai fait un exec sp_spaceused sur mon index:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*15234, Niveau*16, État*1, Procédure*sp_spaceused, Ligne*69
    Les objets de ce type n'ont pas d'espace alloué.

  11. #11
    Membre confirmé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2016
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 144
    Par défaut
    a travers l'interface Graphique

    cliquer sur propriété de l'index fragmentation puis pages

  12. #12
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Par défaut
    Merci, c'est 185 pages.

    Taux fragmentation 62% Remplissage de page 70% ....

    MERCI.

    A+

  13. #13
    Membre émérite

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2014
    Messages : 817
    Billets dans le blog
    2
    Par défaut
    LA valeur minimum est 1000 Page

    il faudrait changer le paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @MinNumberOfPages int = 1000
    dans la procédure

  14. #14
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Par défaut
    MERCI BCP.

    Avec un retour d'expérience, je laisse à 1000 pages ou je baisse un peu sachant que la base est très sollicitée ....


    A+

  15. #15
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 731
    Par défaut
    Bonjour,

    Je m'invite à cette conversation :- et j'ouvre une parenthèse sur FILLFACTOR

    Lorsqu'on une reconstruction et/ou réorganisation des indexes quotidienne on ne se penche pas trop sur sur ce paramètre

    (FILLFACTOR) et on laisse par défaut 0 .... OU je me trompe ...?

    Merci.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appels de procedures stockées dans une proc stockée ?
    Par Nadaa dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 17/07/2008, 10h32
  2. [proc stockée][sqlserver2k] pb MonChamp IN @Mesvaleurs
    Par jld33 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/01/2004, 09h47
  3. [MSDE 2000] Récup champ text depuis proc stockée
    Par Air'V dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/12/2003, 19h47
  4. Réponses: 2
    Dernier message: 16/10/2003, 17h17
  5. recuperer la frequence du proc , la taille de la RAM , ..
    Par Cthulhu 22 dans le forum C++Builder
    Réponses: 5
    Dernier message: 05/09/2002, 12h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo