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 Oracle Discussion :

Question Perf fragmentation


Sujet :

Administration Oracle

  1. #1
    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 Question Perf fragmentation
    Bonjour,

    J ai une table fragmentée à 95%, je cherche la méthode la plus adapté en 12c:

    alter table xxx deallocate unused space ?
    alter table xxx move ... ?
    alter table xxx shrink ...?

    Merci.

    A+

  2. #2
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    De mémoire :
    - SHRINK : il y a plusieurs options mais c'est, de mémoire, l'option à retenir pour défragmenter ta table
    - évite le MOVE car celui-ci est prévu pour migrer un objet d'un tablespace vers un autre, pas pour le défragmenter (même si le MOVE va conduire à recréer ta table)
    - Deallocate ne me semble pas être une bonne option : je lis ici que ça ne traite que la fin de la table https://docs.oracle.com/en/database/...ed_clause.html que "Use the deallocate_unused_clause to explicitly deallocate unused space at the end of a database object segment and make the space available for other segments in the tablespace."

    Après, tu peux toi même inventé ta propre méthode, par exemple tu peux faire un export datapump, supprimer la table, faire un import datapump et ta table sera toute neuve... mais bon, SHRINK sera bien plus efficace

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 995
    Billets dans le blog
    6
    Par défaut
    Autre possibilité, créer un IOT (équivalent de l'index Cluster de SQL Server) puis supprimer l'IOT

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Autre possibilité, créer un IOT (équivalent de l'index Cluster de SQL Server) puis supprimer l'IOT
    Euh, j'avoue ne pas comprendre... en quoi créer une table IOT puis la supprimer va défragmenter une table?
    On parle bien des tables IOT (Index Organization Table)?

  5. #5
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Par défaut
    Citation Envoyé par dari68 Voir le message
    Bonjour,

    J ai une table fragmentée à 95%, je cherche la méthode la plus adapté en 12c:

    A+
    J'aimerai bien connaitre comment vous avez fait (quelles requêtes) pour aboutir à cette affirmation de 95% fragmentée

    Bien Cordialement
    Mohamed

  6. #6
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Peut-être avec le Segment Advisor?

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 995
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Ikebukuro Voir le message
    Euh, j'avoue ne pas comprendre... en quoi créer une table IOT puis la supprimer va défragmenter une table?
    On parle bien des tables IOT (Index Organization Table)?
    Un IOT c'est la table dont les lignes sont triées dans l'ordre de la clé d'index. Pour constituer cet index, toutes les lignes sont déplacées et créées dans de nouvelles pages ce qui défragmente de facto la table sauf si l'on précise un PCTFREE (équivalent du FILLFACTOR dans tous les autres SGBDR). En supprimant l'IOT, Oracle est assez intelligent pour ne supprimer que les pages (pardon, "bloc", puisqu'Oracle refuse d'utiliser la terminologie consacrée...) contenant la racine de l'index et celle de navigation, sans toucher aux pages contenant les données...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  8. #8
    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,

    Voici pour la requête (récupérée/net):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select table_name,avg_row_len,round(((blocks*16/1024)),2)||'MB' "TOTAL_SIZE",
    round((num_rows*avg_row_len/1024/1024),2)||'Mb' "ACTUAL_SIZE",
    round(((blocks*16/1024)-(num_rows*avg_row_len/1024/1024)),2) ||'MB' "FRAGMENTED_SPACE",
    (round(((blocks*16/1024)-(num_rows*avg_row_len/1024/1024)),2)/round(((blocks*16/1024)),2))*100 "percentage"
    from all_tables WHERE table_name='MATABLE';
    Dans mon cas, j'opte pour export/import de ma table.

    A+

Discussions similaires

  1. [MySQL-8.0] Question PERF: ANALYSE et OPTIMIZER
    Par agdid04 dans le forum Administration
    Réponses: 2
    Dernier message: 07/10/2021, 12h06
  2. [2016] SQL Questions PERF
    Par agdid04 dans le forum Administration
    Réponses: 5
    Dernier message: 12/02/2019, 14h27
  3. [2005] Question perf SQL 2005
    Par agdid04 dans le forum Administration
    Réponses: 18
    Dernier message: 23/09/2015, 15h55
  4. Amis DBAs : question idiote sur les perfs
    Par ZERS dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/09/2006, 09h45
  5. Questions Access: Perf / Frontend / Migration
    Par BigFoot69 dans le forum Access
    Réponses: 9
    Dernier message: 09/05/2006, 17h03

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