Ptite question :
afin dévaluer la différence de perf entre 2 requètes qui générent le même
résultat, je me sers du Plan d'éxécution, outil que je maitrise assez mal.
Pour une lecture simple, peut on se contenter de cumuler les pourcentages et
de les comparer ensuite ?
Exemple : J'ai une requete qui peut s'écrire soit sous la forme :
select * from t1,t2 where t2.id=mon_id and t1.x <2.x and and t1.y>t2.y ,qui
me donne 650% pour 6 opérations
ou bien
select * from t1 where t1.x<(select t2.x from t2 where t2.id=mon_id) and
t1.y>(select t2.x from t2 where t2.id=mon_id) qui donne 633 % pour 7
opérations
Pour ceux qui ont d'autres syntaxes à proposer, je suis curieux !!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
Déjà réécris là en utilisant des jointure JOIN ! cela date de SQL 2 (1992)
select * from t1 INNER JOIN t2 ON t1.x < t2.x AND t1.y > t2.y where t2.id = mon_id
Ensuite voit si id, x et y sont indexés.
Ce qui est intéressant c'est le nombre d'entrée sortie dont tu aura la valeur dans la bulle d'aide de chaque opération.
A +
Frédéric D a écrit:
Ptite question : afin dévaluer la différence de perf entre 2 requètes qui générent le même résultat, je me sers du Plan d'éxécution, outil que je maitrise assez mal. Pour une lecture simple, peut on se contenter de cumuler les pourcentages et de les comparer ensuite ?
Exemple : J'ai une requete qui peut s'écrire soit sous la forme : select * from t1,t2 where t2.id=mon_id and t1.x <2.x and and t1.y>t2.y ,qui me donne 650% pour 6 opérations ou bien select * from t1 where t1.x<(select t2.x from t2 where t2.id=mon_id) and t1.y>(select t2.x from t2 where t2.id=mon_id) qui donne 633 % pour 7 opérations
Pour ceux qui ont d'autres syntaxes à proposer, je suis curieux !!
Merci d'avance
Fred
-- Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
Déjà réécris là en utilisant des jointure JOIN ! cela date de SQL 2 (1992)
select *
from t1
INNER JOIN t2
ON t1.x < t2.x
AND t1.y > t2.y
where t2.id = mon_id
Ensuite voit si id, x et y sont indexés.
Ce qui est intéressant c'est le nombre d'entrée sortie dont tu aura la valeur dans la bulle d'aide de chaque opération.
A +
Frédéric D a écrit:
Ptite question :
afin dévaluer la différence de perf entre 2 requètes qui générent le même
résultat, je me sers du Plan d'éxécution, outil que je maitrise assez mal.
Pour une lecture simple, peut on se contenter de cumuler les pourcentages et
de les comparer ensuite ?
Exemple : J'ai une requete qui peut s'écrire soit sous la forme :
select * from t1,t2 where t2.id=mon_id and t1.x <2.x and and t1.y>t2.y ,qui
me donne 650% pour 6 opérations
ou bien
select * from t1 where t1.x<(select t2.x from t2 where t2.id=mon_id) and
t1.y>(select t2.x from t2 where t2.id=mon_id) qui donne 633 % pour 7
opérations
Pour ceux qui ont d'autres syntaxes à proposer, je suis curieux !!
Merci d'avance
Fred
--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
Déjà réécris là en utilisant des jointure JOIN ! cela date de SQL 2 (1992)
select * from t1 INNER JOIN t2 ON t1.x < t2.x AND t1.y > t2.y where t2.id = mon_id
Ensuite voit si id, x et y sont indexés.
Ce qui est intéressant c'est le nombre d'entrée sortie dont tu aura la valeur dans la bulle d'aide de chaque opération.
A +
Frédéric D a écrit:
Ptite question : afin dévaluer la différence de perf entre 2 requètes qui générent le même résultat, je me sers du Plan d'éxécution, outil que je maitrise assez mal. Pour une lecture simple, peut on se contenter de cumuler les pourcentages et de les comparer ensuite ?
Exemple : J'ai une requete qui peut s'écrire soit sous la forme : select * from t1,t2 where t2.id=mon_id and t1.x <2.x and and t1.y>t2.y ,qui me donne 650% pour 6 opérations ou bien select * from t1 where t1.x<(select t2.x from t2 where t2.id=mon_id) and t1.y>(select t2.x from t2 where t2.id=mon_id) qui donne 633 % pour 7 opérations
Pour ceux qui ont d'autres syntaxes à proposer, je suis curieux !!
Merci d'avance
Fred
-- Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
F___ [MVP]
Bonsoir,
De plus afin d'accélérer ta requette, il vaut mieu dans la mesure du possible spécifier les Champs que tu souhaites récupérer, car le * est toujours très pénalisant pour les performances.
Bonne soirée.
Romelard Fabrice
"Frédéric D" a écrit dans le message de news:
Ptite question : afin dévaluer la différence de perf entre 2 requètes qui générent le même résultat, je me sers du Plan d'éxécution, outil que je maitrise assez mal. Pour une lecture simple, peut on se contenter de cumuler les pourcentages
et
de les comparer ensuite ?
Exemple : J'ai une requete qui peut s'écrire soit sous la forme : select * from t1,t2 where t2.id=mon_id and t1.x <2.x and and t1.y>t2.y
,qui
me donne 650% pour 6 opérations ou bien select * from t1 where t1.x<(select t2.x from t2 where t2.id=mon_id) and t1.y>(select t2.x from t2 where t2.id=mon_id) qui donne 633 % pour 7 opérations
Pour ceux qui ont d'autres syntaxes à proposer, je suis curieux !!
Merci d'avance
Fred
Bonsoir,
De plus afin d'accélérer ta requette, il vaut mieu dans la mesure du
possible spécifier les Champs que tu souhaites récupérer, car le * est
toujours très pénalisant pour les performances.
Bonne soirée.
Romelard Fabrice
"Frédéric D" <frederic.dumusois@etocomm.fr> a écrit dans le message de
news:OPEnZgfLEHA.3684@TK2MSFTNGP12.phx.gbl...
Ptite question :
afin dévaluer la différence de perf entre 2 requètes qui générent le même
résultat, je me sers du Plan d'éxécution, outil que je maitrise assez mal.
Pour une lecture simple, peut on se contenter de cumuler les pourcentages
et
de les comparer ensuite ?
Exemple : J'ai une requete qui peut s'écrire soit sous la forme :
select * from t1,t2 where t2.id=mon_id and t1.x <2.x and and t1.y>t2.y
,qui
me donne 650% pour 6 opérations
ou bien
select * from t1 where t1.x<(select t2.x from t2 where t2.id=mon_id) and
t1.y>(select t2.x from t2 where t2.id=mon_id) qui donne 633 % pour 7
opérations
Pour ceux qui ont d'autres syntaxes à proposer, je suis curieux !!
De plus afin d'accélérer ta requette, il vaut mieu dans la mesure du possible spécifier les Champs que tu souhaites récupérer, car le * est toujours très pénalisant pour les performances.
Bonne soirée.
Romelard Fabrice
"Frédéric D" a écrit dans le message de news:
Ptite question : afin dévaluer la différence de perf entre 2 requètes qui générent le même résultat, je me sers du Plan d'éxécution, outil que je maitrise assez mal. Pour une lecture simple, peut on se contenter de cumuler les pourcentages
et
de les comparer ensuite ?
Exemple : J'ai une requete qui peut s'écrire soit sous la forme : select * from t1,t2 where t2.id=mon_id and t1.x <2.x and and t1.y>t2.y
,qui
me donne 650% pour 6 opérations ou bien select * from t1 where t1.x<(select t2.x from t2 where t2.id=mon_id) and t1.y>(select t2.x from t2 where t2.id=mon_id) qui donne 633 % pour 7 opérations
Pour ceux qui ont d'autres syntaxes à proposer, je suis curieux !!