|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() Andre ParentWebmaster Inscription : septembre 2007 Messages : 96 ![]() |
Bonjour,
J'ai du reprendre les travaux d'un programmeur ingénieur en informatique. Donc la structure mal concu de la base de donnée était déjà en place et je ne peux pas la modifier à part ajouter des tables et des index. Cette base de donnée sert à un odorateur incluant un gestion des projets. Donc il y a une table repository qui contient les Punch-in et Punch-Out. Par contre l'ingénieur à décidé de créer un enregistrement pour un punch-in et un autre pour un punch-out. Donc pour calculer le temps il faut trouver le punch-out associée a ce punch-in. Le punch-out peut etre place avant le punch-in dans la table. Le punch-in peut ne pas avoir de punch-out pour le moment. Dans certains cas(car l'administrateur peut ajouté/suprimmer manuelement des punch-in/out) il peut avoir 2 punch-in/out de suite mais dans ce temps c'est normal que GIGO s'applique. Voici la table Repository Code :
Voici ma VIEW Code :
Donc si vous avez des piste pour m'aider, ca serait grandement apprécié. Merci à l'avance |
||||
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Commencez par placer les bons index (state, date_time)
Ensuite MySQL n'ayant pas de fonction optimisées comme ROW_NUMBER, LEAD et LAG, le fait de retrouver la ligne suivante ou précédente sera congénitalement lent. Seule solution passer à un vrai SGBDR vraiment libre comme PostGreSQL qui sait faire ce genre de choses sans problème ! A lire : http://blog.developpez.com/sqlpro/p9...udre-aux-yeux/ http://blog.developpez.com/sqlpro/p9...lles-en-sql-1/ A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 |
|
Membre du Club
![]() Andre ParentWebmaster Inscription : septembre 2007 Messages : 96 ![]() |
hehe, merci beaucoup. J'espérais avoir une réponse de toi.
J'ai pas le pouvoir de changer la BD donc j'ai résolu le problème en le contournant. Je crée tout simplement une table temporaire(qui contient les bons indexs) au début de mon code dans lequel j'insère les données de ma VIEW déjà pré-filtrer. Par la suite j'interroge cette table temporaire qui est vraiment plus rapide. Et avant de finir mon code, j'efface cette table. C'est sûr que j'aurais pus aussi créer cette table permanente et l'incrémenter avec des triggers mais je n'ai même pas accès a ceux-ci non plus En passant SQLpro, j'ai appris 90% de ce que je sais des Bases de Données par tes tutoriels et faut croire que c'est vraiment mieux que ce qu'ils enseignent dans les universités du Québec. |
|
00
|
|
|
#4 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Oui, sauf que apprendre avec MySQL c'est quand même plus que limite.... Ce n'est toujours pas un vrai SGBD relationnel !
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#5 |
|
Membre du Club
![]() Andre ParentWebmaster Inscription : septembre 2007 Messages : 96 ![]() |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com