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 :

2 milliard d'enregistrement dans un table


Sujet :

Firebird

  1. #1
    Membre à l'essai
    Homme Profil pro
    Fondateur MIV-SOFT
    Inscrit en
    Décembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Fondateur MIV-SOFT
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 28
    Points : 20
    Points
    20
    Par défaut 2 milliard d'enregistrement dans un table
    Bonjour,

    Pour info, je suis utilisateur depuis pas mal d'année de FB et par expérience j'ai des applications avec des base de 100 Go dans une centaines de tables.
    ça passe mais c'est déjà lent surtout pendant les opérations de DELETE et SELECT, PURGE avec environ 2000 transaction/minute.

    Je précise que 80% du volume de données est dans une même table soit entre 80 à 100 millions d'enregistrement(à 150 octet). c'est déjà très lent surtout lors des opérations delete, rollback et recalcul d'index.

    Pour un projet particulier je dois prévoir de stocker plus de 2 milliard dans cette table principale soit un volume de plus 300 Go dans la base avec une config matérielle limité type mini serveur Raid 5.

    Je sais par avance et par expérience que c'est hors de question avec FB dans la configuration actuelle de mes tables.

    J'envisage donc de stocker uniquement dans cette table principale des aggrégat (base d'une heure) et de stocker les données brutes à l'extérieur sous forme de fichier CSV.
    ça permet de limite la taille de la base FB tout en utilisant les capacités du disque en fichier beaucoup moins limitée en volume (une sorte de NoSql personnel).

    Ensuite à l'exploitation, j'utilise des données aggrégées rapidement accessible dans FB (puisque compressé à 1h) et si j'ai besoin de données brutes j'utilise les fichiers sur disque en ligne de façon transparente pour l'utilisateur.

    Je précise que la fragmentation en plusieurs base n'est pas envisageable.

    Avez vous été confronter à un nombre si important d'enregistrement dans FB et dans une même table > 2 milliard ?
    Y t il des moyens plus "normalisé" de traiter le PB, complément à FB ? bigdata ?

  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
    au lieu de fichier csv, tu peux utiliser des fichiers ascii fixe et les utiliser comme table externe dans Firebird tu pourras y faire des INSERT et SELECT
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  3. #3
    Membre à l'essai
    Homme Profil pro
    Fondateur MIV-SOFT
    Inscrit en
    Décembre 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Fondateur MIV-SOFT
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Merci, je retiens l'idée ça peut effectivement simplifier la lecture mais peut être pas l'écriture quoi que.

    Je m'explique, je ne verrai pas l'intérêt de transformer ma grosse Table en un seul fichier ASCII c'est déporté le Pb, voir s'en créer d'autre (taille du fichier ingérable , altération, impossible à lire avec des outils standard donc non tranportable, non archivable, etc.).

    Mon idée est de décomposé ma grosse table en une multitude de fichier (ex: pour chaque ID un par jour), ce qui limite à 86400 enregistrements dans mon cas. ça devient transportable, archivable et lisible avec un simple tableur si besoin. Le nommage (automatique) des fichiers ressemblerait à ID.YYYY.MM.DD.txt (ou csv).

    Sachant que les données sont produite aléatoirement pour chaque ID (par ordre chronologique quand même), ce qui veut dire un switch permanent pour FB d'un fichier à l'autre.
    Il faudra donc vérifier pour FB si le lien de fichiers externes est consommateur de temps (< 5 msec serait l'idéal).

Discussions similaires

  1. [WD9] Cliquer sur des enregistrements dans une table
    Par oz80 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/12/2005, 20h11
  2. Nombre d'enregistrement dans une table MySQL
    Par tom06440 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 21/10/2005, 19h07
  3. AJOUT d'un ENREGISTREMENT dans UNE TABLE
    Par ramo dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/08/2005, 16h24
  4. Enregistrement dans 2 tables à la fois
    Par martonpylon12 dans le forum Access
    Réponses: 12
    Dernier message: 21/06/2005, 17h42
  5. Réponses: 9
    Dernier message: 27/10/2004, 01h31

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