begin process at 2010 07 29 22:31:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

MySQL

 > 

Requêtes

 > 

Optimisation de requête update


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

Optimisation de requête update

vendredi 8 août 2008 à 14:27:01 | Optimisation de requête update

Rankin

Salut à tous !

Je travaille actuellement sur le développement d'un plugin pour Nagios qui permet d'analyser les logs. En deux mots, une application sur les machines distantes stocke dans une base de données les logs correspondant à des filtres définis par l'administrateur.
Côté serveur Nagios, le plugin se charge de récupérer ses données, de les enregistrer dans ses propres tables et de fournir un résultat.
Seulement, j'ai un petit souci que je souhaiterai optimiser. J'ai constaté qu'une requête prend pas mal de temps et je n'ai pas trouvé de meilleure solution pour effectuer cette opération et c'est pourquoi je sollicite votre aide charitable :)

Voilà : j'ai sur le serveur une table HISTORIQUE_ALERTES et une table MESSAGE_LOG. La première conserve un historique des alertes (par ex, tentative échouée de connexion ssh) et la seconde les messages correspondant dans les fichiers de log. Une clé étrangère dans MESSAGE_LOG permet de savoir à quelle alerte le message est rattaché : plusieurs messages peuvent correspondre à une alerte.
Le souci, c'est pour "synchroniser" ces valeurs. J'ai donc ajouté un champ dans chacune des deux tables qui contient une valeur créée en concaténant différentes informations de manière à rendre chaque couple identifiable de manière unique à un instant t. Je pense que je pourrais ne fonctionner qu'avec une égalité entre ces deux champs pour faire des jointures, mais je trouve ça un peu dégueulasse ; donc je veux utiliser la clé étrangère et supprimer la valeur des champs servant à la synchronisation.
Je sais pas si je suis très clair, mais j'insère la requête, ça vous donnera une idée :

update MESSAGE_LOG set MESSAGE_LOG.HIS_NUM = (select H.HIS_NUM from HISTORIQUE_MESSAGE H where H.MEA_ID = MESSAGE_LOG.MEA_ID) where MESSAGE_LOG.MEA_ID IS NOT NULL

C'est donc relativement long puisque pour chaque update, ça va chercher dans l'autre table la ligne correspondante. Si j'ai été suffisamment clair, auriez-vous une idée pour alléger un peu la charge de mon petit serveur MySQL qui tire la langue ? Dans le cas contraire je me ferai une joie (enfin tout est relatif) de répondre à vos questions si vous avez besoin de plus de détails.
Merci !



Cette discussion est classée dans : message, serveur, log, requête, update


Répondre à ce message

Sujets en rapport avec ce message

requête UPDATE [ par richch ] Salut,Voici une requête qui ne fonctionne pas, j'ai pas traové l'erreur, veuillez m'aider.SQL = "UPDATE admin SET password='" & nouveauMpasse & "'logi requête sql (update avec deux bases) [ par jee0404 ] Bonjour,            Je veux pouvoir updater le prix de mes enregistrements de la base de donnée 1 avec les prix de la base de donné 2 , si le champ it Update sur plusieurs tables [ par Chris_LaFouine ] Bonjour,Je voudrais savoir comment mettre à jour une table à partir des données d'une autre table. Je m'explique...J'ai une table A et une table B. Je Problème requête UPDATE. [ par woot6768 ] Bonjour,J'ai un soucis avec une requête UPDATE, je vous fournis le code correspondant (codé en c#) :string lineCmd = "UPDAT requête update sql/as400 [ par vkrf ] BonjourJe rencontre sur as/400 v5r1  un problème avec la requete SQL suivante :update mabib/fichier1 set colonne100 = (select colonne2 from mabib/fich Accès à un autre serveur [ par anspauldou ] SalutJ'ai un problème. J'ai 2 serveurs A et B ayant win 2000 et SQL 2000. je suis parvenu à inscrir le serveur A au serveur B. Dans l'analyseur de req Requête INSERT INTO entre deux serveurs [ par bowmore ] Bonjour,   Je cherche à faire une requête INSERT INTO, ou toute autre commande me permettant de transférer des données issues d'une requête select d'u requête update avec select [ par bies ] Bonjour!!! besoin d'aide car çà fait des heures que je suis sur cette requête Au départ, j'ai ma table1 dont un extrait ci dessous. dans cette table, Message d'Erreur [ par cavalier2400 ] Bsr, En essayant cette requête sur un champ Alphanumérique d'une table, pourtant, beaucoup de requête de sélection, d'action comme delete, drop, updat Update [ par fdouieb ] Bonjour,J'ai une procedure stockée sur mon serveur SQL Serveur 2003 ayant un update de ce type    create table #Data    (IdRow                    int


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
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,312 sec (4)

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