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 :

Incidence du nombre de colonnes


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 56
    Par défaut Incidence du nombre de colonnes
    Bonjour,

    je vais avoir besoin d'une table d'environ 600 colonnes. Quelles incidences peut avoir un nombre de colonnes aussi important sur les performances de mes UPDATE, INSERT et SELECT?

    merci,

    Romu

  2. #2
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    en soi, pas grand chose, mais ce grand nombre de colonne n'est-il pas symptomatique d'un défaut de conception ?

  3. #3
    Membre éprouvé
    Inscrit en
    Février 2004
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 97
    Par défaut
    Tout dépend du type et de la taille des colonnes mais de facon générale, plus le nombre de colonnes est grand, plus le risque de chainage de ligne s'accroit (ligne stockée dans plusieurs blocs). Donc impact sur la performance.
    Par ailleurs, bien que la limite maxi du nombre de colonnes soit de 1000, oracle separe une ligne en groupe de 256 colonnes (une ligne de 300 colonnes par ex. est gerée internement en deux lignes). La tendance a chainage est donc encore accrue.

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    ça fait parti des vérités qu'on sait, sans jamais savoir pourquoi
    Mais le chainage me semble être un élément de réponse tout à fait crédible.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 56
    Par défaut
    La modélisation de la table est gérée par le progiciel sur lequel je travaille, je ne peux donc pas revoir la modélisation de la base. Après effectivement c'est plutôt mon utilisation du soft qui est à revoir...

    90% des colonnes sont des NUMBER. Mes SELECT se feront sur les 10 premières colonnes de la table puis potentiellement sur une trentaine d'autres.

    Je me dis qu'avec quelques centaines de milliers de lignes le problème de performance ne devrait pas trop se poser.

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 56
    Par défaut
    Si je comprends bien en fait comme je suis sûr d'avoir plus de 256 colonnes (et donc une ligne sur 2 blocs) , je peux aller à 500 colonnes sans impacter les perfomances

    Merci en tout cas pour vos réponses!

  7. #7
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    Citation Envoyé par orafrance Voir le message
    ça fait parti des vérités qu'on sait, sans jamais savoir pourquoi
    Mais le chainage me semble être un élément de réponse tout à fait crédible.
    une vérité qu'on sait sans savoir pourquoi ?
    moi, j'appelle ça une rumeur ou une légende et n'y accorde pas de crédit !

    quant aux chainage, l'explication est séduisante, mais serait-il possible de l'étayer (note métalink ou doc) ?

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par LeoAnderson Voir le message
    moi, j'appelle ça une rumeur ou une légende et n'y accorde pas de crédit !
    la preuve que non

    Quand tout le monde dit la même chose, consultants Oracle compris, j'suis pas assez buté pour ne pas le croire jusqu'à ce que je démontre le contraire... ce qui arrive aussi

  9. #9
    Membre éprouvé
    Inscrit en
    Février 2004
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 97
    Par défaut
    Citation Envoyé par LeoAnderson Voir le message
    une vérité qu'on sait sans savoir pourquoi ?
    moi, j'appelle ça une rumeur ou une légende et n'y accorde pas de crédit !

    quant aux chainage, l'explication est séduisante, mais serait-il possible de l'étayer (note métalink ou doc) ?
    La doc oracle decrit au moins le partitionement en 255 colonnes:

    Tables

    Tables are the basic unit of data storage in an Oracle database. Database tables hold all user-accessible data. Each table has columns and rows. Oracle stores each row of a database table containing data for less than 256 columns as one or more row pieces. A table that has an employee database, for example, can have a column called employee number, and each row in that column is an employee's number.
    http://download-west.oracle.com/docs...01_02intro.htm

    Le chainage est une possible conséquence logique. J'avais par ailleurs lus des docs sur metalink mais je ne retrouve plus le document.

    Et puis sinon y'a qu'a tester.

    @romu92: calcule la taille maximale de ta ligne et regarde si elle tient dans un bloc. Si oui, alors tu ne devrais pas avoir d'impact sur la performance.

Discussions similaires

  1. [T-SQL] Connaître le nombre de colonnes retourner par une PS
    Par NeoMan dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/12/2005, 11h30
  2. Nombre de colonnes avec le nom de la table
    Par benji41 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/07/2005, 20h17
  3. [débutant] nombre de colonne dan sun fichier csv
    Par mandagor dans le forum C++
    Réponses: 18
    Dernier message: 15/06/2005, 15h42
  4. [JTextArea]changer dynamiquement le nombre de colonnes
    Par MrDuChnok dans le forum Composants
    Réponses: 9
    Dernier message: 27/04/2004, 13h31
  5. [RDB$PRIMARY] Nombre de colonnes
    Par Lucien dans le forum InterBase
    Réponses: 4
    Dernier message: 17/01/2004, 12h55

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