Developpement Empirium Index du Forum Developpement Empirium



[réalisé] Traitement du tour : optimisation
Aller à la page Précédente  1, 2
 
Poster un nouveau sujet   Répondre au sujet    Developpement Empirium Index du Forum -> Evolutions & nouveautés - ][
Voir le sujet précédent :: Voir le sujet suivant  
Faëinkar
commère galactique


Inscrit le: 25 Nov 2004
Messages: 784

 MessagePosté le: Lun 06 Mai 2013, 19:09    Sujet du message: Répondre en citant Back to top

Certaines ont des XX
 
Voir le profil de l'utilisateur Envoyer un message privé
Hollowman
Fille (vu la piplette)


Inscrit le: 03 Mai 2004
Messages: 1160
Localisation: Quelque part entre deux points lumineux

 MessagePosté le: Mar 07 Mai 2013, 00:14    Sujet du message: Répondre en citant Back to top

Faëinkar a écrit:
Certaines ont des XX


Ce ne sont pas les plus fréquentes Pleure ou Très triste
 
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Azirma Oberon
Maître Floodeur


Inscrit le: 02 Avr 2004
Messages: 2550

 MessagePosté le: Mar 07 Mai 2013, 10:51    Sujet du message: Répondre en citant Back to top

Non, ça me parrait bizarre que je sache un truc que Max ne saurait pas, mais je tente ma chance quand même :

1ere méthode : SELECT * FROM news WHERE id_auteur=(SELECT id_auteur FROM auteur WHERE nom='Dupont' AND prenom='marcel')

Je n'aime pas cette méthode parce que ça devient très vite le gros bordel.


2ème méthode : SELECT * FROM news AS n, auteur AS a WHERE n.id_auteur = a.id_auteur AND nom="DUPONT" AND prenom="Marcel"

Beaucoup plus classe je trouve. :p (et pratique à moyen terme)

J'ai trouvé les exemples ici : http://www.siteduzero.com/informatique/tutoriels/sql-selection-multi-tables

Si c'est bien ça que tu cherches max, je peux développer un exemple plus parlant.
 
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur
Azirma Oberon
Maître Floodeur


Inscrit le: 02 Avr 2004
Messages: 2550

 MessagePosté le: Mar 07 Mai 2013, 11:12    Sujet du message: Répondre en citant Back to top

Aller je me lance :

Table POSITION_VSX
Champ : ID_VSX
Champ : X
Champ : Y

Table ORDRES_VSX
Champ : ID_Ordre
Champ : ID_VSX
Champ : Type_Ordre
Champ : Info1 // Ici ce sera les X
Champ : Info2 // Ici ce sera les Y

Code:

UPDATE POSITION_VSX
SET X = (SELECT ORDRES_VSX.Info1, ORDRES_VSX.ID_VSX,  ORDRES_VSX.Type_Ordre FROM ORDRES_VSX WHERE ORDRES_VSX.ID_VSX = POSITION_VSX.ID_VSX AND ORDRES_VSX.Type_Ordre = "Deplacement" ),
    Y = (SELECT ORDRES_VSX.Info2, ORDRES_VSX.ID_VSX,  ORDRES_VSX.Type_Ordre FROM ORDRES_VSX WHERE ORDRES_VSX.ID_VSX = POSITION_VSX.ID_VSX AND ORDRES_VSX.Type_Ordre = "Deplacement" )


Je n'ai pas trouver comment appliquer ma méthode 2 à la fonction UPDATE mais cette méthode 1 fonctionne.

edit : 2 MAJ déjà ^^
 
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur
Max
Créateur du Jeu
Créateur du Jeu


Inscrit le: 23 Jan 2003
Messages: 8277

 MessagePosté le: Mar 07 Mai 2013, 11:42    Sujet du message: Répondre en citant Back to top

Je ne savais pas que l'on pouvait mettre un SELECT dans une clause SET =.

Ceci dit, j'ai un autre souci : pour chaque déplacement, il faut générer le rapport !
Et du coup on revient à un traitement presque unitaire.
Mais sur Nova, les temps de traitement des déplacements ont été divisés par 10 hier, grâce à la nouvelle méthode.
Je pense donc que cela sera aussi le cas sur Prima, et donc qu'il n'y aura plus d'optimisation nécessaire.

Merci à vous en tout cas, je testerai ces syntaxes, ça peut toujours servir dans un autre cas.
_________________
AUCUN HRP sur les forums RP merci
 
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
Faëinkar
commère galactique


Inscrit le: 25 Nov 2004
Messages: 784

 MessagePosté le: Mar 07 Mai 2013, 15:24    Sujet du message: Répondre en citant Back to top

oui, tu peux ^_^

j'avais aussi la proposition d'Azirma, mais pour les perf, mieux vaut une seule sous-requête que deux Clin d'oeil

Et si tu mets un index sur le numéro de flotte, tu améliores encore les perfs.

Pour le rapport, dans ta table où tu as la position des flottes, tu peux mettre une colonne pour flaguer si la position a été modifiée ou pas. Comme ça, avec un simple select, tu génère ton rapport de déplacement.
 
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Developpement Empirium Index du Forum -> Evolutions & nouveautés - ][ Toutes les heures sont au format GMT + 2 Heures
Aller à la page Précédente  1, 2
Page 2 sur 2

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum