plan d'execution estimé avec query analyser

Le
Frédéric D
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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fred BROUARD
Le #11718841
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 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]
Le #11718811
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" 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

,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




Publicité
Poster une réponse
Anonyme