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

Firebird Discussion :

Calculer la taille d'un record d'une table


Sujet :

Firebird

  1. #1
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut Calculer la taille d'un record d'une table
    Bonjour,

    J'aimerais juste savoir si il y a un moyen par un rdb$database de calculer la taille d'un enregistrement d'une table afin de pourvoir déterminer le maximum d'enregistrements à insérer ?

    Merci
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  2. #2
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    pardon ?
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  3. #3
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    je m'explique....
    J'ai une table devant contenir une soixantaine de champ et avec un maximum de 20 à 30000 enregitrements. Avec ce nombre de champs je me demande si je ne risque pas d'alourdir mes requêtes d'autant que je souhaiterais rajouter deux champs BLOB à cette table :
    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
     
    CREATE TBL_SALARIE(
        CHAMP1         CHAR(3) CHARACTER SET UTF8,
        CHAMP2         INTEGER NOT NULL,
        CHAMP3         VARCHAR(35) CHARACTER SET UTF8,
        CHAMP4         VARCHAR(30) CHARACTER SET UTF8,
        CHAMP5         VARCHAR(45) CHARACTER SET UTF8,
        CHAMP6         CHAR(2) CHARACTER SET UTF8 NOT NULL,
        CHAMP7         VARCHAR(35) CHARACTER SET UTF8,
        CHAMP8         VARCHAR(35) CHARACTER SET UTF8,
        CHAMP9         INTEGER,
        CHAMP10       VARCHAR(1) CHARACTER SET UTF8,
        CHAMP11       SMALLINT,
        CHAMP12       DATE,
        CHAMP13       INTEGER DEFAULT 0,
        CHAMP14       VARCHAR(25) CHARACTER SET UTF8,
        CHAMP15       VARCHAR(6) CHARACTER SET UTF8,
        CHAMP16       DATE,
        CHAMP17       DATE,
        CHAMP18       INTEGER DEFAULT 0,
        CHAMP19       INTEGER DEFAULT 0,
        CHAMP20       CHAR(3) CHARACTER SET UTF8,
        CHAMP21       VARCHAR(30) CHARACTER SET UTF8,
        CHAMP22       VARCHAR(35) CHARACTER SET UTF8,
        CHAMP23       VARCHAR(30) CHARACTER SET UTF8,
        CHAMP24       INTEGER DEFAULT 0,
        CHAMP25       INTEGER DEFAULT 0,
        CHAMP26       INTEGER DEFAULT 0,
        CHAMP27       NUMERIC(12,2) DEFAULT 0,
        CHAMP28       INTEGER DEFAULT 0,
        CHAMP29       NUMERIC(12,5) DEFAULT 0,
        CHAMP30       DATE,
        CHAMP31       INTEGER DEFAULT 0,
        CHAMP32       VARCHAR(10),
        CHAMP33       INTEGER DEFAULT 0,
        CHAMP34       INTEGER DEFAULT 0,
        CHAMP35       VARCHAR(20),
        CHAMP36       VARCHAR(10),
        CHAMP37       VARCHAR(10),
        CHAMP38       VARCHAR(15),
        CHAMP39       VARCHAR(50) CHARACTER SET UTF8,
        CHAMP40       VARCHAR(50) CHARACTER SET UTF8,
        CHAMP41       VARCHAR(50) CHARACTER SET UTF8,
        CHAMP42       INTEGER,
        CHAMP43       VARCHAR(40) CHARACTER SET UTF8,
        CHAMP44       INTEGER DEFAULT 0,
        CHAMP45       VARCHAR(20) CHARACTER SET UTF8,
        CHAMP46       VARCHAR(20) CHARACTER SET UTF8,
        CHAMP47       VARCHAR(20) CHARACTER SET UTF8,
        CHAMP48       VARCHAR(30) CHARACTER SET UTF8,
        CHAMP49       VARCHAR(30) CHARACTER SET UTF8,
        CHAMP50       INTEGER DEFAULT 0,
        CHAMP51       INTEGER DEFAULT 0,
        CHAMP52       INTEGER,
        CHAMP53       INTEGER,
        CHAMP54       CHAR(1) DEFAULT 'n',
        CHAMP55       CHAR(1) DEFAULT 'n',
        CHAMP56       CHAR(8),
        CHAMP57       TIMESTAMP,
        CHAMP58       VARCHAR(20) CHARACTER SET UTF8
    );
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut
    Une table d'une soixantaine de champs est, à mon avis, une erreur de modélisation. Alors si en plus tu rajoutes 2 champs de type BLOB, tu cours à la catastrophe en terme de temps de performance !

  5. #5
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    ce n'est pas la limite du nombre d'enregistrements qui peut poser problème, c'est la taille limite d'un enregistrement (64k)
    un blob 8 octets; smallint 2; integer, float, date, time 4; bigint,double precision,timestamp 8; numeric,decimal 4 ou 8, char et varchar selon la taille et le jeu de caractère utilisé
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  6. #6
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    merci,

    tu cours à la catastrophe en terme de temps de performance !
    Même pour une limite de 30 000 enregistrements ?
    Pour un SGBD Serveur c'est peu non ?

    Au plus je pourrais décomposer la table en deux mais la 2eme qui sera creer ne contiendra qu'une seule ligne de la 1ere alors à quoi ca me sert.
    Si tu veux jeter un coup sur la table...je peux te l'envoyer.
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  7. #7
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    justement c'est ce que je voulais savoir ce en quoi cela posait problème. La difficultés résiderait donc dans la limite d'un enregistrement qui est de 64 K. Et justement l'objet de mon post est à moitié clair Il s'agirait non pas de pourvoir déterminer le maximum d'enregistrements à insérer mais si ma table dépasse les 64 K et je voulais savoir si il y a un moyen (par sql) qui me permet de savoir exactement la taille d'enregistrement de ma taille.

    Je vous remercie
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  8. #8
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    je t'ai donné les valeurs
    mais tu peux t'aider de ça :
    http://www.volny.cz/iprenosil/interb...calculator.htm
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  9. #9
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    Citation Envoyé par ddaime Voir le message
    tu cours à la catastrophe en terme de temps de performance !
    bien sûr que non
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  10. #10
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Merci Makowski,

    Je calculerais donc la taille de l'enregistrement d'aprés ces valeurs et si c'est les champs CHAR/VARCHAR sont en UTF-8 faudra-t-il mutltiplier leur taille par 4 ?
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  11. #11
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bon reflexion fait, j'abandonne l'UTF-8 je travaillerais avec l'ISO8859_1
    ainsi, on est plus tranquille avec moins de complication.

    Merci Makowski et Ddaime
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

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

Discussions similaires

  1. Changer la taille d'un champ d'une table
    Par casawi dans le forum Oracle
    Réponses: 9
    Dernier message: 24/11/2010, 18h10
  2. record dans une table pl/sql
    Par redo_log dans le forum PL/SQL
    Réponses: 1
    Dernier message: 10/04/2008, 01h22
  3. Réponses: 0
    Dernier message: 03/02/2008, 10h41
  4. Vérifier la taille d'un attribut d'une table
    Par Mister Nono dans le forum Hibernate
    Réponses: 7
    Dernier message: 09/11/2007, 00h20
  5. [Oracle 10g] renumérotez les records d'une table
    Par awalter1 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 29/03/2007, 13h48

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