begin process at 2012 05 25 01:12:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ColdFusion

 > 

Archives

 > 

Base de données

 > 

Optimisation BDD+ requêtes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Optimisation BDD+ requêtes

lundi 18 août 2003 à 19:09:56 | Optimisation BDD+ requêtes

momoblue

Bonjour,

je dois faire des calculs statistiques à partir de données en base et ne sais pas trop comment m'y prendre:

J'ai une table composée de 10000 appareils electriques (num_appareil).
chaque appareil subit un grand nombre d'évènements dans une journée (état modifié, intervention d'un opérateur...).
=> Objectifs :
Connaître le nombre d'évènements subis par un appareil pendant une période donnée. (je dois connaître la date et l'heure exactes de chaque évènement).
Pouvoir comparer ce nombre avec celui d'une autre période ou d'un autre appareil.
Afficher dans une IHM ces comparaisons. (ce qui sous entend avoir un historique du nombre d'évenements sur une longue période).

Or, chaque appareil peut subir 2000 opérations en une journée. ce qui fait pour mes 10 000 appareils environ 20 000 000 d'évènements traités par jour, soit 20 000 000 de mises à jour de compteurs dans une table de stats (update en temps reel) et 20 000 000 de requêtes d'affichage dans l'IHM.

Je voudrais optimiser tout cela en affichant les stats dans l'ihm non pas en temps réel mais en affichant les évènements cumulés sur une heure.

Est-il judicieux de créer des fonctions qui incrémentent un compteur et d'inserer la valeur du compteur une fois par heure dans la table stats (=> MAJ moins frequente)?
Ou puis-je simplement continuer un update en temps reel dans la base et faire une requête de selection une fois par heure pour un affichage dans l'IHM ?
Dois-je faire les deux?

Avez-vous des idées?
Merci beaucoup pour votre aide





mardi 19 août 2003 à 02:31:43 | Re : Optimisation BDD+ requêtes

lfontaine

Salut,

Ca depend des contraintes que tu te pose et du materiel que tu utilise. Pour 20 000 000 de select et update par jour si tout est compris dans les 8 heures de bureaux, tu as interet a avoir du bon matos.

Si tu dois seulement compter le nb d'evenement par appareil, perso je ferait tout en memoire en maintenant un tableau. Je ferait un backup du tableau toute les 10 minutes (2000 operations en une journee et une sauvegarde par heure, si ton systeme plante 59 minutes apres la derniere sauvegarde
tu perds un max d'info) avec 10 minutes, au pire sur une heure tu perd 15% de ta periode de statistique qui est l'heure).
Mais ca depends de la charge que ton systeme peut supporter.

Si tu doit identifier chaque evenement, j'opterai pour un fichier log et un autre systeme pour inserer le fichier log dans la Bdd lance par un batch toutes les heures.
L'avantage c'est que tu meme sauvegarder les fichiers logs et les graver quelque part au cas ou et tu peux faire l'insert dans la bdd sur une autre machine.

Laurent

-------------------------------
Réponse au message :
-------------------------------

> Bonjour,
>
> je dois faire des calculs statistiques à partir de données en base et ne sais pas trop comment m'y prendre:
>
> J'ai une table composée de 10000 appareils electriques (num_appareil).
> chaque appareil subit un grand nombre d'évènements dans une journée (état modifié, intervention d'un opérateur...).
> => Objectifs :
> Connaître le nombre d'évènements subis par un appareil pendant une période donnée. (je dois connaître la date et l'heure exactes de chaque évènement).
> Pouvoir comparer ce nombre avec celui d'une autre période ou d'un autre appareil.
> Afficher dans une IHM ces comparaisons. (ce qui sous entend avoir un historique du nombre d'évenements sur une longue période).
>
> Or, chaque appareil peut subir 2000 opérations en une journée. ce qui fait pour mes 10 000 appareils environ 20 000 000 d'évènements traités par jour, soit 20 000 000 de mises à jour de compteurs dans une table de stats (update en temps reel) et 20 000 000 de requêtes d'affichage dans l'IHM.
>
> Je voudrais optimiser tout cela en affichant les stats dans l'ihm non pas en temps réel mais en affichant les évènements cumulés sur une heure.
>
> Est-il judicieux de créer des fonctions qui incrémentent un compteur et d'inserer la valeur du compteur une fois par heure dans la table stats (=> MAJ moins frequente)?
> Ou puis-je simplement continuer un update en temps reel dans la base et faire une requête de selection une fois par heure pour un affichage dans l'IHM ?
> Dois-je faire les deux?
>
> Avez-vous des idées?
> Merci beaucoup pour votre aide
>
>
>
>
>
>
mardi 19 août 2003 à 02:33:13 | Re : Optimisation BDD+ requêtes

lfontaine



PS: n'oublie pas d'utiliser CFLOCK pour eviter les problemes d'erreurs de transations.


-------------------------------
Réponse au message :
-------------------------------

> Salut,
>
> Ca depend des contraintes que tu te pose et du materiel que tu utilise. Pour 20 000 000 de select et update par jour si tout est compris dans les 8 heures de bureaux, tu as interet a avoir du bon matos.
>
> Si tu dois seulement compter le nb d'evenement par appareil, perso je ferait tout en memoire en maintenant un tableau. Je ferait un backup du tableau toute les 10 minutes (2000 operations en une journee et une sauvegarde par heure, si ton systeme plante 59 minutes apres la derniere sauvegarde
> tu perds un max d'info) avec 10 minutes, au pire sur une heure tu perd 15% de ta periode de statistique qui est l'heure).
> Mais ca depends de la charge que ton systeme peut supporter.
>
> Si tu doit identifier chaque evenement, j'opterai pour un fichier log et un autre systeme pour inserer le fichier log dans la Bdd lance par un batch toutes les heures.
> L'avantage c'est que tu meme sauvegarder les fichiers logs et les graver quelque part au cas ou et tu peux faire l'insert dans la bdd sur une autre machine.
>
> Laurent
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Bonjour,
> >
> > je dois faire des calculs statistiques à partir de données en base et ne sais pas trop comment m'y prendre:
> >
> > J'ai une table composée de 10000 appareils electriques (num_appareil).
> > chaque appareil subit un grand nombre d'évènements dans une journée (état modifié, intervention d'un opérateur...).
> > => Objectifs :
> > Connaître le nombre d'évènements subis par un appareil pendant une période donnée. (je dois connaître la date et l'heure exactes de chaque évènement).
> > Pouvoir comparer ce nombre avec celui d'une autre période ou d'un autre appareil.
> > Afficher dans une IHM ces comparaisons. (ce qui sous entend avoir un historique du nombre d'évenements sur une longue période).
> >
> > Or, chaque appareil peut subir 2000 opérations en une journée. ce qui fait pour mes 10 000 appareils environ 20 000 000 d'évènements traités par jour, soit 20 000 000 de mises à jour de compteurs dans une table de stats (update en temps reel) et 20 000 000 de requêtes d'affichage dans l'IHM.
> >
> > Je voudrais optimiser tout cela en affichant les stats dans l'ihm non pas en temps réel mais en affichant les évènements cumulés sur une heure.
> >
> > Est-il judicieux de créer des fonctions qui incrémentent un compteur et d'inserer la valeur du compteur une fois par heure dans la table stats (=> MAJ moins frequente)?
> > Ou puis-je simplement continuer un update en temps reel dans la base et faire une requête de selection une fois par heure pour un affichage dans l'IHM ?
> > Dois-je faire les deux?
> >
> > Avez-vous des idées?
> > Merci beaucoup pour votre aide
> >
> >
> >
> >
> >
> >
>


Cette discussion est classée dans : nombre, heure, appareil, évènements, ihm


Répondre à ce message

Sujets en rapport avec ce message

nombre de visiteur [ par lemmings ] salut,je voudrais savoir comment compter le nombre de visiteur online qu'il y a sur mon site et pouvoir les reconnaitres, comme sur ce site dans le me Faire un compteur live [ par Nico5779 ] Bonjour,qqn d'entre vous peut il m'aider a réaliser un compteur qui affiche le nombre d'utilisateur identifié ou non.Comme sur ce site dans le menu a analyse du log [ par pat14 ] au secours....j'aimerai analyser le fichier log su serveur CF MX, pour en tirer si possible le nombre de connection, le nombre de pages demandé (ou de Alerter l'administrateur ... [ par tonlo ] slt tous le monde,voila j'aimerais savoir comment une base de données peut informer l'administrateur systeme d'une operation precise.pour faire clair, Problème COLDFUSION AVEC GRAPHIQUE [ par KO2 ] Bonjour,J'ai un gros problème. Des données sont stockées dans une table appelée "CD". Tous les jours des CD sortent d'un magasin de location et le nom probleme d'insertion d'une date [ par dinver78 ] Je veux inserer une date et l'heure dans un champ datetime sur SQLserver. Je récupére la date de la façon suivante :<cfset datestatut=#DateFormat(Now( cfcms quid??? [ par nickadele ] cfcms : c'est une nouvelle balise cf c : count m : masse s: silencieuse. hint : renvoie le nombre de connecté qui ne disent rien ;) Je suis toujours Formater un nombre sous coldfusion [ par jeanmizrahi ] Bonjour, Quelqu'un pourrait-il me conseiller sur la meilleure façon de formater sous Coldfusion un nombre (exemple: 1234567.89) au format européen (c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales