C'est ma premi=E8re intervention ici.
Je voudrais savoir s'il est plus performant de faire un
SELECT COUNT (commercial) FROM Jobs
WHERE commercial =3D '$li->ut_id' AND jo_actif =3D '0'
ou bien un
SELECT commercial FROM Jobs
WHERE commercial =3D '$li->ut_id' AND jo_actif =3D '0'
SELECT COUNT (commercial) FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
ou bien un SELECT commercial FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Normalement, la première version est plus efficace. Mais comme toujours, cela dépend du sgbd. Avec PostgreSQL 8.1.4 par exemple, le plan d'exécution sera sensiblement le même pour les deux requêtes. Mais quoi qu'il en soit, la première solution a de toute façon l'avantage de limiter la quantité d'information qui passe dans les tuyaux. De plus le code sera plus simple (pas besoin de compter).
-- Nul ne tombe amoureux involontairement ou par hasard. - Jean-Luc Marion - Le phénomène érotique -
SELECT COUNT (commercial) FROM Jobs
WHERE commercial = '$li->ut_id' AND jo_actif = '0'
ou bien un
SELECT commercial FROM Jobs
WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Normalement, la première version est plus efficace. Mais comme
toujours, cela dépend du sgbd. Avec PostgreSQL 8.1.4 par exemple, le
plan d'exécution sera sensiblement le même pour les deux requêtes. Mais
quoi qu'il en soit, la première solution a de toute façon l'avantage de
limiter la quantité d'information qui passe dans les tuyaux. De plus le
code sera plus simple (pas besoin de compter).
--
Nul ne tombe amoureux involontairement ou par hasard.
- Jean-Luc Marion - Le phénomène érotique -
SELECT COUNT (commercial) FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
ou bien un SELECT commercial FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Normalement, la première version est plus efficace. Mais comme toujours, cela dépend du sgbd. Avec PostgreSQL 8.1.4 par exemple, le plan d'exécution sera sensiblement le même pour les deux requêtes. Mais quoi qu'il en soit, la première solution a de toute façon l'avantage de limiter la quantité d'information qui passe dans les tuyaux. De plus le code sera plus simple (pas besoin de compter).
-- Nul ne tombe amoureux involontairement ou par hasard. - Jean-Luc Marion - Le phénomène érotique -
Olivier Berquin
Il s'agit d'un serveur MySQL 5.0. Par contre, je suis un peu étonné... Pour connaître le nombre d'enregistrements, je dois faire ceci:
$q_opened = " SELECT COUNT(jo_commercial) FROM Jobs WHERE jo_commercial = '$li->ut_id' AND jo_actif = '1'"; $result_opened = sql_query ($q_opened); if ($result_opened <> FALSE) { $num_opened = mysql_num_rows($result_opened); // reste du code }
Est-ce exact??? Si c'est le cas, c'est la même syntaxe que lorsque je fais un SELECT jo_commercial FROM Jobs
Non?
Merci.
Oli.
Il s'agit d'un serveur MySQL 5.0.
Par contre, je suis un peu étonné...
Pour connaître le nombre d'enregistrements, je dois faire ceci:
$q_opened = "
SELECT COUNT(jo_commercial) FROM Jobs
WHERE jo_commercial = '$li->ut_id' AND jo_actif = '1'";
$result_opened = sql_query ($q_opened);
if ($result_opened <> FALSE)
{
$num_opened = mysql_num_rows($result_opened);
// reste du code
}
Est-ce exact???
Si c'est le cas, c'est la même syntaxe que lorsque je fais un
SELECT jo_commercial FROM Jobs
Il s'agit d'un serveur MySQL 5.0. Par contre, je suis un peu étonné... Pour connaître le nombre d'enregistrements, je dois faire ceci:
$q_opened = " SELECT COUNT(jo_commercial) FROM Jobs WHERE jo_commercial = '$li->ut_id' AND jo_actif = '1'"; $result_opened = sql_query ($q_opened); if ($result_opened <> FALSE) { $num_opened = mysql_num_rows($result_opened); // reste du code }
Est-ce exact??? Si c'est le cas, c'est la même syntaxe que lorsque je fais un SELECT jo_commercial FROM Jobs
Non?
Merci.
Oli.
Alain Montfranc
Olivier Berquin a écrit
Bonjour tout le monde,
C'est ma première intervention ici. Je voudrais savoir s'il est plus performant de faire un SELECT COUNT (commercial) FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
ou bien un SELECT commercial FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Merci.
Oli.
Les deux requetes ne font pas la meme chose : la premiere renvoie le nombre d'enregistrements , la seconde renvoie les enregistrements... On ne peut donc pas les comparer.
Olivier Berquin a écrit
Bonjour tout le monde,
C'est ma première intervention ici.
Je voudrais savoir s'il est plus performant de faire un
SELECT COUNT (commercial) FROM Jobs
WHERE commercial = '$li->ut_id' AND jo_actif = '0'
ou bien un
SELECT commercial FROM Jobs
WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Merci.
Oli.
Les deux requetes ne font pas la meme chose : la premiere renvoie le
nombre d'enregistrements , la seconde renvoie les enregistrements... On
ne peut donc pas les comparer.
C'est ma première intervention ici. Je voudrais savoir s'il est plus performant de faire un SELECT COUNT (commercial) FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
ou bien un SELECT commercial FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Merci.
Oli.
Les deux requetes ne font pas la meme chose : la premiere renvoie le nombre d'enregistrements , la seconde renvoie les enregistrements... On ne peut donc pas les comparer.
nobody
Alain Montfranc a écrit :
Olivier Berquin a écrit
Bonjour tout le monde,
C'est ma première intervention ici. Je voudrais savoir s'il est plus performant de faire un SELECT COUNT (commercial) FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
ou bien un SELECT commercial FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Merci.
Oli.
Les deux requetes ne font pas la meme chose : la premiere renvoie le nombre d'enregistrements , la seconde renvoie les enregistrements... On ne peut donc pas les comparer.
Ce groupe est francophone, merci
Alain Montfranc a écrit :
Olivier Berquin a écrit
Bonjour tout le monde,
C'est ma première intervention ici.
Je voudrais savoir s'il est plus performant de faire un
SELECT COUNT (commercial) FROM Jobs
WHERE commercial = '$li->ut_id' AND jo_actif = '0'
ou bien un
SELECT commercial FROM Jobs
WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Merci.
Oli.
Les deux requetes ne font pas la meme chose : la premiere renvoie le
nombre d'enregistrements , la seconde renvoie les enregistrements... On
ne peut donc pas les comparer.
C'est ma première intervention ici. Je voudrais savoir s'il est plus performant de faire un SELECT COUNT (commercial) FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
ou bien un SELECT commercial FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Merci.
Oli.
Les deux requetes ne font pas la meme chose : la premiere renvoie le nombre d'enregistrements , la seconde renvoie les enregistrements... On ne peut donc pas les comparer.
Ce groupe est francophone, merci
Olivier Berquin
Les deux requetes ne font pas la meme chose : la premiere renvoie le nombre d'enregistrements , la seconde renvoie les enregistrements... On ne peut donc pas les comparer.
Oui, je suis bien d'accord, mais j'ai écrit cela en rapport avec la réponse de Jean-Luc. Extrait:
De plus le code sera plus simple (pas besoin de compter).
Je ne vois pas la différence de code...
Oli.
Les deux requetes ne font pas la meme chose : la premiere renvoie le
nombre d'enregistrements , la seconde renvoie les enregistrements... On
ne peut donc pas les comparer.
Oui, je suis bien d'accord, mais j'ai écrit cela en rapport avec la
réponse de Jean-Luc.
Extrait:
De plus le code sera plus simple (pas besoin de compter).
Les deux requetes ne font pas la meme chose : la premiere renvoie le nombre d'enregistrements , la seconde renvoie les enregistrements... On ne peut donc pas les comparer.
Oui, je suis bien d'accord, mais j'ai écrit cela en rapport avec la réponse de Jean-Luc. Extrait:
De plus le code sera plus simple (pas besoin de compter).
Je ne vois pas la différence de code...
Oli.
Jogo
Sur fr.comp.applications.sgbd, Olivier Berquin disait :
Pour connaître le nombre d'enregistrements, je dois faire ceci:
[snip le code beaucoup trop indenté pour être citable]
Est-ce exact???
Non. Tu dois utiliser quelque chose comme mysql_fetch_row. Mais là c'est du PHP et on est HC.
-- Lorsque l'on a exclu de l'art le but de moraliser et d'améliorer les hommes, il ne s'en suit pas encore que l'art doive être absolument sans fin, sans but et dépourvu de sens, en un mot, l'art pour l'art. -- Nietzsche
Sur fr.comp.applications.sgbd, Olivier Berquin disait :
Pour connaître le nombre d'enregistrements, je dois faire ceci:
[snip le code beaucoup trop indenté pour être citable]
Est-ce exact???
Non. Tu dois utiliser quelque chose comme mysql_fetch_row. Mais là
c'est du PHP et on est HC.
--
Lorsque l'on a exclu de l'art le but de moraliser et d'améliorer les
hommes, il ne s'en suit pas encore que l'art doive être absolument
sans fin, sans but et dépourvu de sens, en un mot, l'art pour l'art.
-- Nietzsche
Sur fr.comp.applications.sgbd, Olivier Berquin disait :
Pour connaître le nombre d'enregistrements, je dois faire ceci:
[snip le code beaucoup trop indenté pour être citable]
Est-ce exact???
Non. Tu dois utiliser quelque chose comme mysql_fetch_row. Mais là c'est du PHP et on est HC.
-- Lorsque l'on a exclu de l'art le but de moraliser et d'améliorer les hommes, il ne s'en suit pas encore que l'art doive être absolument sans fin, sans but et dépourvu de sens, en un mot, l'art pour l'art. -- Nietzsche
Thierry B.
--{ nobody a plopé ceci: }--
SELECT COUNT (commercial) FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
SELECT commercial FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Les deux requetes ne font pas la meme chose : la premiere renvoie le nombre d'enregistrements , la seconde renvoie les enregistrements... On ne peut donc pas les comparer.
Ce groupe est francophone, merci
SQL est un langage transnational. Foutou vers le hachoir, où vous avez de grandes chances de remporter le concours de la semaine...
-- La Liberté et la Revolution sont deux concepts orthogonaux. http://la.buvette.org/images/revolution-liberte.jpg ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--{ nobody a plopé ceci: }--
SELECT COUNT (commercial) FROM Jobs
WHERE commercial = '$li->ut_id' AND jo_actif = '0'
SELECT commercial FROM Jobs
WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Les deux requetes ne font pas la meme chose : la premiere renvoie le
nombre d'enregistrements , la seconde renvoie les enregistrements... On
ne peut donc pas les comparer.
Ce groupe est francophone, merci
SQL est un langage transnational. Foutou vers le hachoir, où
vous avez de grandes chances de remporter le concours de la
semaine...
--
La Liberté et la Revolution sont deux concepts orthogonaux.
http://la.buvette.org/images/revolution-liberte.jpg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SELECT COUNT (commercial) FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
SELECT commercial FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Les deux requetes ne font pas la meme chose : la premiere renvoie le nombre d'enregistrements , la seconde renvoie les enregistrements... On ne peut donc pas les comparer.
Ce groupe est francophone, merci
SQL est un langage transnational. Foutou vers le hachoir, où vous avez de grandes chances de remporter le concours de la semaine...
-- La Liberté et la Revolution sont deux concepts orthogonaux. http://la.buvette.org/images/revolution-liberte.jpg ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Olivier Berquin
OK, j'ai trouvé. $q_closed = " SELECT COUNT(jo_commercial) FROM Jobs WHERE jo_commercial = '$li->ut_id' AND jo_actif = '0'"; $result_closed = sql_query ($q_closed); if ($result_closed <> FALSE) { $num_closed = sql_fetch_array($result_closed); echo "Nombre = " . $num_closed[0]; // reste du code }
Je dois absolument me renseigner sur les différences entre fetch_array, fetch_object...
Merci.
Oli.
OK, j'ai trouvé.
$q_closed = "
SELECT COUNT(jo_commercial) FROM Jobs
WHERE jo_commercial = '$li->ut_id' AND jo_actif = '0'";
$result_closed = sql_query ($q_closed);
if ($result_closed <> FALSE)
{
$num_closed = sql_fetch_array($result_closed);
echo "Nombre = " . $num_closed[0];
// reste du code
}
Je dois absolument me renseigner sur les différences entre
fetch_array, fetch_object...
OK, j'ai trouvé. $q_closed = " SELECT COUNT(jo_commercial) FROM Jobs WHERE jo_commercial = '$li->ut_id' AND jo_actif = '0'"; $result_closed = sql_query ($q_closed); if ($result_closed <> FALSE) { $num_closed = sql_fetch_array($result_closed); echo "Nombre = " . $num_closed[0]; // reste du code }
Je dois absolument me renseigner sur les différences entre fetch_array, fetch_object...
Merci.
Oli.
nobody
Thierry B. a écrit :
--{ nobody a plopé ceci: }--
SELECT COUNT (commercial) FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
SELECT commercial FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Les deux requetes ne font pas la meme chose : la premiere renvoie le nombre d'enregistrements , la seconde renvoie les enregistrements... On ne peut donc pas les comparer.
Ce groupe est francophone, merci
SQL est un langage transnational. Foutou vers le hachoir, où vous avez de grandes chances de remporter le concours de la semaine...
Ahara wasia ulawa masiya. Bora nusu ya hasara raha na hasara ndzima.Dindri la shari la waili : nahika tsi lamtsimba ne lamtsimbiwa.Fumbo lahimbiwa mjinga mwendza ãkili ulirambua.
Thierry B. a écrit :
--{ nobody a plopé ceci: }--
SELECT COUNT (commercial) FROM Jobs
WHERE commercial = '$li->ut_id' AND jo_actif = '0'
SELECT commercial FROM Jobs
WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Les deux requetes ne font pas la meme chose : la premiere renvoie le
nombre d'enregistrements , la seconde renvoie les enregistrements... On
ne peut donc pas les comparer.
Ce groupe est francophone, merci
SQL est un langage transnational. Foutou vers le hachoir, où
vous avez de grandes chances de remporter le concours de la
semaine...
Ahara wasia ulawa masiya. Bora nusu ya hasara raha na hasara
ndzima.Dindri la shari la waili : nahika tsi lamtsimba ne
lamtsimbiwa.Fumbo lahimbiwa mjinga mwendza ãkili ulirambua.
SELECT COUNT (commercial) FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
SELECT commercial FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
Les deux requetes ne font pas la meme chose : la premiere renvoie le nombre d'enregistrements , la seconde renvoie les enregistrements... On ne peut donc pas les comparer.
Ce groupe est francophone, merci
SQL est un langage transnational. Foutou vers le hachoir, où vous avez de grandes chances de remporter le concours de la semaine...
Ahara wasia ulawa masiya. Bora nusu ya hasara raha na hasara ndzima.Dindri la shari la waili : nahika tsi lamtsimba ne lamtsimbiwa.Fumbo lahimbiwa mjinga mwendza ãkili ulirambua.
Fred Brouard - SQLpro
Bonjour,
Olivier Berquin a écrit :
Bonjour tout le monde,
C'est ma première intervention ici. Je voudrais savoir s'il est plus performant de faire un SELECT COUNT (commercial) FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
ou bien un SELECT commercial FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
sans aucune commune mesure... En effet la première requête sera moins couteuse et la différence sera de plus en plus important au fur et à mesure du nombre de ligne. En effet la première ne ramène qu'une seule ligne d'une seule variable de 4 octets. La seconde va ramner n lignes d'en moyenne 8 à 10 octets. Or plus le volume des données à manipuler est important, moins rapide est la requête. Ensuite pour le traitement de la requête indépendamment des lignes ramenées, l'indexation es primordiale. Ainsi sans auncun index, il faut lire toute la table. Avec un index sur (commercial, jo_actif) il ne faudra lire que les entrées d'index correspondant. Lisez l'article que j'ai écrit sur l'efficacité des techniques d'indexation : http://www.sqlspot.com/INDEXATION-une-etude-par-l-exemple.html
Merci.
Oli.
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************
Bonjour,
Olivier Berquin a écrit :
Bonjour tout le monde,
C'est ma première intervention ici.
Je voudrais savoir s'il est plus performant de faire un
SELECT COUNT (commercial) FROM Jobs
WHERE commercial = '$li->ut_id' AND jo_actif = '0'
ou bien un
SELECT commercial FROM Jobs
WHERE commercial = '$li->ut_id' AND jo_actif = '0'
sans aucune commune mesure... En effet la première requête sera moins
couteuse et la différence sera de plus en plus important au fur et à
mesure du nombre de ligne.
En effet la première ne ramène qu'une seule ligne d'une seule variable
de 4 octets.
La seconde va ramner n lignes d'en moyenne 8 à 10 octets.
Or plus le volume des données à manipuler est important, moins rapide
est la requête.
Ensuite pour le traitement de la requête indépendamment des lignes
ramenées, l'indexation es primordiale.
Ainsi sans auncun index, il faut lire toute la table. Avec un index sur
(commercial, jo_actif) il ne faudra lire que les entrées d'index
correspondant.
Lisez l'article que j'ai écrit sur l'efficacité des techniques
d'indexation :
http://www.sqlspot.com/INDEXATION-une-etude-par-l-exemple.html
Merci.
Oli.
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
*********************** http://www.sqlspot.com *************************
C'est ma première intervention ici. Je voudrais savoir s'il est plus performant de faire un SELECT COUNT (commercial) FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
ou bien un SELECT commercial FROM Jobs WHERE commercial = '$li->ut_id' AND jo_actif = '0'
sans aucune commune mesure... En effet la première requête sera moins couteuse et la différence sera de plus en plus important au fur et à mesure du nombre de ligne. En effet la première ne ramène qu'une seule ligne d'une seule variable de 4 octets. La seconde va ramner n lignes d'en moyenne 8 à 10 octets. Or plus le volume des données à manipuler est important, moins rapide est la requête. Ensuite pour le traitement de la requête indépendamment des lignes ramenées, l'indexation es primordiale. Ainsi sans auncun index, il faut lire toute la table. Avec un index sur (commercial, jo_actif) il ne faudra lire que les entrées d'index correspondant. Lisez l'article que j'ai écrit sur l'efficacité des techniques d'indexation : http://www.sqlspot.com/INDEXATION-une-etude-par-l-exemple.html
Merci.
Oli.
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation *********************** http://www.sqlspot.com *************************