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

SQL Oracle Discussion :

Tailles et nombres d'informations sur les tables d'un schéma


Sujet :

SQL Oracle

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 715
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 715
    Par défaut Tailles et nombres d'informations sur les tables d'un schéma
    Bonjour

    J'utilise la requête suivante afin d'obtenir la taille des tables ainsi que le nombre d'enregistrements, mais le COUNT est en PL
    Peut t'on faire plus efficace et moins long en temps de traitement ?Merci

    PS
    Je me suis basé sur celle ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    taille des tables
     
    CREATE OR REPLACE FUNCTION
    c_to_f (p_tname in varchar2) RETURN NUMBER IS
    l_columnValue number default NULL;
    BEGIN
    execute immediate
    'select count(*)
    from ' || p_tname INTO l_columnValue;
    return l_columnValue;
    END;
    /
     
    SELECT * FROM (
    SELECT
    tablespace_name, 
    owner, 
    object_type, table_name, 
    rtrim(to_char(ROUND(bytes)/1024/1024, '99990.00000'), '.') AS Megabytes,
    ROUND(Sum(bytes/1024/1024) OVER (PARTITION BY table_name)) AS Tables_in_MB,
    c_to_f(table_name) AS COUNT_RECORDS
    FROM (
    -- We can start this with Table size
    SELECT 
    tablespace_name,
    owner, 
    'TABLE' AS object_type,
    segment_name AS table_name, bytes
    FROM dba_segments
    WHERE segment_type IN ('TABLE', 'TABLE PARTITION', 'TABLE SUBPARTITION') --e are selecting the table,table partition and table
     
    ----subpartition
    UNION ALL
     
    --- We require to check for Indexes
     
     
    SELECT 
    s.tablespace_name,
    i.owner, 
    'Index' AS object_type,
    i.table_name, s.bytes
    FROM dba_indexes i, dba_segments s
    WHERE s.segment_name = i.index_name
    AND s.owner = i.owner
    AND s.segment_type IN ('INDEX', 'INDEX PARTITION', 'INDEX SUBPARTITION')
    -- Then for LOB
     
     
    UNION ALL
     
     
    SELECT 
    s.tablespace_name,
    l.owner, 
    'LOB_COLUMN' AS object_type,
    l.table_name, s.bytes
    FROM dba_lobs l, dba_segments s
    WHERE s.segment_name = l.segment_name
    AND s.owner = l.owner
    AND s.segment_type = 'LOBSEGMENT'
    -- Get data of LOB INDEXES
    UNION ALL
    SELECT 
    s.tablespace_name,
    l.owner, 
    'LOB_INDEX' AS object_type,
    l.table_name, s.bytes
    FROM dba_lobs l, dba_segments s
    WHERE s.segment_name = l.index_name
    AND s.owner = l.owner
    AND s.segment_type = 'LOBINDEX'
    )
    WHERE owner in UPPER('&schema_name')
    )
    ORDER BY COUNT_RECORDS DESC,Tables_in_MB DESC, OBJECT_TYPE DESC
     
    /

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Si vous rafraîchissez vos statistiques régulièrement, vous pouvez regarder la colonne num_rows de all_tables, au moins pour les tables volumineuses.

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

Discussions similaires

  1. Informations sur les clés d'une table
    Par ludogoal dans le forum Développement
    Réponses: 2
    Dernier message: 29/06/2010, 11h02
  2. Information sur les tables de fond
    Par Dale_L dans le forum Entreprise Manager
    Réponses: 1
    Dernier message: 10/10/2008, 22h04
  3. Comment vérifier les statistiques sur les table d'un schéma
    Par juin29 dans le forum Administration
    Réponses: 1
    Dernier message: 17/06/2008, 16h55
  4. Informations sur les tables liées
    Par ThunderBolt_ dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/07/2007, 13h47
  5. Réponses: 5
    Dernier message: 30/10/2006, 16h23

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