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

 Oracle Discussion :

[Shrink] Question ?


Sujet :

Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Points : 56
    Points
    56
    Par défaut [Shrink] Question ?
    Bonjour à tous,

    je me pose quelques petites questions à propos du "Shrink".

    Visiblement, il est intéressant d'effectuer cette opération sur les tables où l'on peut récupérer de l'espace.

    Mais si on l'effectue sur une table où il n'y a pas d'espace à récupérer, que se passe-t-il ? Cela représente-t-il une perte de temps vu qu'on exécute une longue opération pour ne rien gagner, ou presque. Ou alors cette opération ne prend que peu de temps vu qu'il n'y a pas d'espace à gagner ?

    D'avance, merci pour vos réponses.

  2. #2
    Membre habitué
    Inscrit en
    Janvier 2009
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 162
    Points : 181
    Points
    181
    Par défaut
    Bonjour,

    Effectivement, moins on aura d'espace à récupérer moins l'opération prendra de temps, mais plus qu'une perte de temps c'est plutôt un "gâchis" de ressources qui pourraient être utilisées pour l'applicatif - même si les objets restent accessibles durant presque toute l'opération (excepté lors de la mise à jour du HWM). Avec la 10g il existe un assistant qui permet de déterminer quels sont les objets qui bénéficieraient d'un shrink, et dont l'exécution est automatique depuis la release 2.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Points : 56
    Points
    56
    Par défaut
    Si je comprends bien le sens de ta réponse, tu dis qu'il est bête d'essayer de gagner un peu de place alors qu'on pourrait utiliser les ressources nécessaires au réarrangement pour l'application elle-même ?

    Dont l'exécution est automatique ? Cela veut-il dire que dès qu'on exécute un shrink, Oracle exécute l'assistant afin de déterminer si le réarrangement en vaut la peine ou pas ? Quel est le critère de sélection ?

  4. #4
    Membre habitué
    Inscrit en
    Janvier 2009
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 162
    Points : 181
    Points
    181
    Par défaut
    Non pas forcément bête, mais rien ne sert de "gaspiller" des ressources alors qu'elles pourraient être utilisées ailleurs (en production surtout). En ce qui concerne l'assistant, il est exécute périodiquement et c'est lui qui va déterminer si un objet a besoin ou non d'être "shrinké" en fonction du taux d'occupation des blocs, du nombre de blocs vide, du taux de blocs chainés...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Points : 56
    Points
    56
    Par défaut
    J'essaie de comprendre hein ...

    L'assistant, lors de ses exécutions périodiques, "flague" les objets. Ensuite lorsqu'on lance un shrink, en fonction de la valeur de la valeur de ce flag, le shrink est effectivement exécuté, ou non ?

    Aurais-tu un lien de référence ?

    Merci pour tes réponses.

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2009
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 162
    Points : 181
    Points
    181
    Par défaut
    J'essaie de comprendre hein ...
    no problemo

    Ensuite lorsqu'on lance un shrink, en fonction de la valeur de la valeur de ce flag, le shrink est effectivement exécuté, ou non ?
    ou non il faut voir le shrink comme un move, mais plus fin. L'assistant ne fait que te sortir une liste d'objets qui bénéficieraient d'un shrink. Ensuite libre à toi de faire le shrink du ou des objets identifiés par l'assistant.

    Aurais-tu un lien de référence ?
    ici

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Points : 56
    Points
    56
    Par défaut
    Merci pour le lien.

    Mon problème est que ces opérations sont réalisées dans des scripts batch qui s'exécutent durant la nuit.

  8. #8
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je voudrais préciser qu'en plus de 'gaspiller des ressources' faire un shrink sans raison va souvent:
    - récupérer de la place seulement temporairement, mais cet espace devra être realloué plus tard
    - dégrader les performances lorsque de nouveaux inserts devront réallouer cet espace

    C'est interressant lors d'une purge (où les suppressions ne vont pas être utilisées par de nouvelles données) mais une table a besoin d'une marge d'espace vide pour recevoir des insert, update, delete de manière performante.

    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

Discussions similaires

  1. Question shrink table en 9i
    Par nax71 dans le forum Administration
    Réponses: 0
    Dernier message: 16/07/2010, 10h20
  2. Divers questions
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 06/08/2002, 21h57
  3. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11
  4. Question de faisabilité
    Par lisarasu dans le forum CORBA
    Réponses: 3
    Dernier message: 14/05/2002, 11h26
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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