Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

plan d'execution estimé avec query analyser

2 réponses
Avatar
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

2 réponses

Avatar
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: ******************
Avatar
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