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

Décisions SGBD Discussion :

[architecture] process d'historisation


Sujet :

Décisions SGBD

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 67
    Points : 79
    Points
    79
    Par défaut [architecture] process d'historisation
    Bonjour,

    je voudrais avoir quelques renseignements concernant un probleme fréquemment rencontré : l'historisation de données.

    Voici mon probleme :

    Dans mon schema, j'ai une table de 5,300,000 enregistrement, cette table contient un certain nombre de données qui ne sont pas utilisées au quotidien mais qui ne peuvent etre purgees. La cause de cette historisation est notamment la volumetrie et le temps mis pour faire des dumps load de ce schema (au total la base fait 18Go).

    La solution que nous envisageons consiste a creer un schema d'historisation contenant la meme structure de table dans laquelle on stockerait ces données via soit une procédure stockée soit un batch.

    Mon probleme reside dans la recuperation de ces donnees (c'est a dire lorsque l'on souhaite pouvoir acceder de nouveau a des donnees historisees, pour eventuellement les utilisees en meme temps que celle non historisees).

    La solution vers laquelle je m'oriente serait l'utilisation d'une vue celle ci serait une vue des deux tables.

    avant : Mes_data (Table) Mes_data_Histo (Table)
    apres : Mes_data (Vue) Mes_data_prod (Table) Mes_Data_Histo (Table)

    Ceci me permettant de ne pas avoir a reprendre toutes les sources qui accedent par SQL a la table Mes_data.

    SGBD : Sybase

    Y voyez vous une grossiere erreur ?
    Quel va etre le comportement de ma vue d'un point de vue de gestion par le SGBD (cela va t il etre plus lent que l'utilisation d'une Table de 5300000 lignes) ?

    Je suis pas certains d'avoir ete bien clair alors hesitez pas a me demander plus de renseignement.

    Merci
    Java, JDBC, SQL, Oracle

    Specialiste Kamehameha des blagues-boulets

    Barman de la taverne

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Ca depend des indexes que tu as sur tes tables...

    L'acces a une vue est identique a celui des tables connexes

    Attention avec Sybase ASE : l'union dans une vue n'est possible que depuis la version 12.5
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  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 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Si tu veut de la performance extrême, j'utilise un concept très différent :

    1) une base complète avec tous l'historique y compris les dernières données, alimentée par réplication sur INSERT et UPDATE, jamais en DELETE sur un serveur de moyenne gamme

    2) la base d'exploitation limitée à l'année en cours plus l'année précédente.
    sur un serveur très performant.

    Si l'utilisateur veut des infos plus ancienne, aucune requête n'est modifiée, seule la connexion change et les temps de réponse aussi, mais c'est l'utilisateur qui est demander de ces info ancienne et il prend conscience de l'allongement des temps de réponse et l'accepte facilement compte tenu de sa demande.

    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
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Dans un environement pur Sybase, il m'est arrivé d'installer la même technique que SQLPro, mais avec la base historisée sur ASIQ plutôt que sur ASE, compte tenu que la plupart des requêtes historiques l'étaient en mode SELECT (pour des rapports). Quant a la repli, modification des functions strings pour qu'une modification dans la base de prod amene une insertion + date dans la base DW (c'est un peu plus complexe que ca dans le detail)
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 67
    Points : 79
    Points
    79
    Par défaut
    J'ai deja employe une technique similaire a la votre.

    Nous disposions d'une base d'historique pour un perimetre bien defini. Cette base etait alimente regulierement et accessible par les user en mode lecture.

    Mon soucis aujourd'hui c'est que je ne peux pas mettre une telle solution en place.

    Il s'agit d'une base de données liees a un SI financier gerant un certain nombre de produit financier. De nombreux traitements sont necessaires (calcul de risque financier, de valorisation, de PNL ... bref des calculs financiers tres lourd). Pour soulager la base principale, la solution qui a ete adoptee par l'equipe fut de creer trois autres bases dedies chacune d'entre elle pour des calculs specifiques.

    Chacune de ces base correspond a une image de la base principale a une heure donnee (par exemple une des bases est une image de la principale en date de la veille a 23h59). Ces images sont donc faite par dump/load.
    Le probleme est que nous ne disposons pas de beaucoup de temps pour faire ces dump/load et que nous ne devons pas utiliser de replication ... (me demander pas pourquoi ca m'herisse le poil).

    La problematique est donc de reussir a alleger la taille de la base principale (et par dump/load interpose des autres bases) afin de diminuer ce temps de dump/load.

    La solution que j'envisage est de mettre sur une base une partie des donnees statiques ou non utilisees, et que cette base soit accessible par l'ensemble de mes bases (cela represente tout de meme 1/3 de la volumetrie). Mon dump/load ne se faisant alors uniquement que sur les 2/3 restants.

    Le fait d'utiliser une vue qui represente une table "light" plus ma table d'historique me permet d'etre transparent vis a vis de l'utilisateur, et de mes programmes.

    Ma question est plus de savoir si cela semble correcte comme idee et de savoir quels sont les impacts sur les perfs (le fait de splitter les data sur deux bases differentes et d'y acceder par une vue est il beaucoup plus lent que d'acceder par une seule table).

    merci de vos conseils !
    Java, JDBC, SQL, Oracle

    Specialiste Kamehameha des blagues-boulets

    Barman de la taverne

  6. #6
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Quelle version exacte d'ASE utilises-tu ? Colle-nous le resultat d'un

    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 67
    Points : 79
    Points
    79
    Par défaut
    Resultat du select :

    Adaptive Server Enterprise/12.0.0.4/P/SWR 10047 ESD 2/HP9000-879/HP-UX 11.0/1789/64bit/FBO/Tue Feb 5 02:52:49 2002
    Java, JDBC, SQL, Oracle

    Specialiste Kamehameha des blagues-boulets

    Barman de la taverne

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/06/2014, 10h22
  2. [Architecture] Interface entre C++ & Java
    Par yanis97 dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 13/07/2004, 15h46
  3. [DOM] Ajout d'une instrution de processing
    Par corwin_d_ambre dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 06/05/2003, 11h51
  4. architecture distribuée débutant
    Par jmt2 dans le forum CORBA
    Réponses: 2
    Dernier message: 13/03/2003, 12h52
  5. architecture
    Par pons dans le forum CORBA
    Réponses: 3
    Dernier message: 11/06/2002, 11h10

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