par
Hubert Roksor » 16 oct. 2007, 15:02
@debe: ce qu'il faut retenir, c'est que si ce message apparaît systématiquement à chaque nouveau sujet, ce n'est pas juste parce qu'on aime bien embêter les gens, c'est parce que sans ces informations il est très difficile (et prend plus de temps) de correctement répondre à tes questions.
Pour référence :
Rappel pratique - n'oubliez pas de :
- suivre ces quelques conseils de débogage
- préciser quel SGBD vous utilisez ainsi que sa version
- utiliser les balises [/b] pour afficher vos requêtes SQL[/color]
- poster le schéma des tables pertinentes à votre requête sous la forme d'une instruction "CREATE TABLE" (vous pouvez retirer les colonnes qui ne sont pas utilisées dans les requêtes problématiques)
- si nécessaire, poster un échantillon des données
Si on demande de poster le schéma de la table, c'est pour facilement la recréer en local (un copier/coller prend 5s) pour vérifier que la solution qu'on propose est pertinente. Pareil pour l'échantillon de données.
Concernant "ça marche pas", le problème c'est qu'il y a une infinité de raisons pour lesquelles une chose peut ne pas se dérouler comme prévu. Est-ce qu'il y a un message d'erreur, et si oui lequel ? (voir les conseils de débogages) Si ce n'est pas un message d'erreur, c'est que le résultat obtenu diffère du résultat escompté et dans ce cas, quel est le résultat obtenu ? quel est le résultat escompté ? En quoi diffèrent-ils l'un de l'autre ?
Si on demande la version du SGBD c'est pour éviter de passer du temps à répondre à partir de fonctions (sous-requêtes, vues, procédures, etc...) qui n'existeraient pas dans toutes les versions de la base de données que tu utilises. Là encore ce serait dommage de passer du temps pour rien.
Pour en revenir au sujet, je ne suis pas fan des sous-requêtes dans la clause SELECT parce qu'elles ne sont pas optimisées par MySQL, et je pense que les performances vont se dégrader de façon significative au fur et à mesure que la table grossit. En fait, j'aurais pû vérifier cette théorie par moi-même si le schéma des tables était disponible, ainsi qu'un échantillon des données. J'aurais même réfléchit à une alternative si je n'avais pas passé le temps qui m'était imparti à expliquer pourquoi certains messages s'affichent en rouge...
[b]@debe[/b]: ce qu'il faut retenir, c'est que si ce message apparaît systématiquement à chaque nouveau sujet, ce n'est pas juste parce qu'on aime bien embêter les gens, c'est parce que sans ces informations il est très difficile (et prend plus de temps) de correctement répondre à tes questions.
Pour référence :
[quote]Rappel pratique - n'oubliez pas de :
[list][*]suivre [url=http://www.phpfrance.com/forums/voir_sujet-19378.php]ces quelques conseils de débogage[/url]
[*]préciser quel [url=http://fr.wikipedia.org/wiki/SGBD]SGBD[/url] vous utilisez ainsi que sa version
[*][color=red]utiliser les balises [b][code][/b] et [b][/code][/b] pour afficher vos requêtes SQL[/color]
[*][color=red]poster le schéma des tables pertinentes à votre requête sous la forme d'une instruction "CREATE TABLE"[/color] [i](vous pouvez retirer les colonnes qui ne sont pas utilisées dans les requêtes problématiques)[/i]
[*]si nécessaire, poster un échantillon des données[/list][/quote]
Si on demande de poster le schéma de la table, c'est pour facilement la recréer en local (un copier/coller prend 5s) pour vérifier que la solution qu'on propose est pertinente. Pareil pour l'échantillon de données.
Concernant "ça marche pas", le problème c'est qu'il y a une infinité de raisons pour lesquelles une chose peut ne pas se dérouler comme prévu. Est-ce qu'il y a un message d'erreur, et si oui lequel ? (voir les conseils de débogages) Si ce n'est pas un message d'erreur, c'est que le résultat obtenu diffère du résultat escompté et dans ce cas, quel est le résultat obtenu ? quel est le résultat escompté ? En quoi diffèrent-ils l'un de l'autre ?
Si on demande la version du SGBD c'est pour éviter de passer du temps à répondre à partir de fonctions (sous-requêtes, vues, procédures, etc...) qui n'existeraient pas dans toutes les versions de la base de données que tu utilises. Là encore ce serait dommage de passer du temps pour rien.
Pour en revenir au sujet, je ne suis pas fan des sous-requêtes dans la clause SELECT parce qu'elles ne sont pas optimisées par MySQL, et je pense que les performances vont se dégrader de façon significative au fur et à mesure que la table grossit. En fait, j'aurais pû vérifier cette théorie par moi-même si le schéma des tables était disponible, ainsi qu'un échantillon des données. J'aurais même réfléchit à une alternative si je n'avais pas passé le temps qui m'était imparti à expliquer pourquoi certains messages s'affichent en rouge...