OVH Cloud OVH Cloud

Optimisation de requêtes

8 réponses
Avatar
ANNA
Bonjour,

Est-il possible d'optimiser une requ=EAte bas=E9e sur une=20
seule table?
Si oui, comment???

select * from dossiers with(nolock)=20
where rtrim(email)=3D'pas d''adresse mail'

Merci

Bonne fin de journ=E9e

Anna

8 réponses

Avatar
Sébastien Delestre
Ne rapatrie que les champs nécessaires, donc pas de select * ... à moins
bien sur que dans ton cas, tu ais besoin de tous les champs.


"ANNA" a écrit dans le message de
news:2b3701c486b5$5fca6a00$
Bonjour,

Est-il possible d'optimiser une requête basée sur une
seule table?
Si oui, comment???

select * from dossiers with(nolock)
where rtrim(email)='pas d''adresse mail'

Merci

Bonne fin de journée

Anna
Avatar
toto
pkoi ne pas laisser le champ email à NULL ?

"Sébastien Delestre" a écrit dans le message de
news:
Ne rapatrie que les champs nécessaires, donc pas de select * ... à moins
bien sur que dans ton cas, tu ais besoin de tous les champs.


"ANNA" a écrit dans le message de
news:2b3701c486b5$5fca6a00$
Bonjour,

Est-il possible d'optimiser une requête basée sur une
seule table?
Si oui, comment???

select * from dossiers with(nolock)
where rtrim(email)='pas d''adresse mail'

Merci

Bonne fin de journée

Anna




Avatar
Patrice
Ou chaîne vide ? Ma préférence personnelle est de désactiver le NULL et
d'utiliser une chaîne vide si la distinction entre NULL et chaîne vide est
inutile ce qui me semble le cas ici...

Patrice

--

"toto" a écrit dans le message de
news:
pkoi ne pas laisser le champ email à NULL ?

"Sébastien Delestre" a écrit dans le message


de
news:
> Ne rapatrie que les champs nécessaires, donc pas de select * ... à moins
> bien sur que dans ton cas, tu ais besoin de tous les champs.
>
>
> "ANNA" a écrit dans le message de
> news:2b3701c486b5$5fca6a00$
> Bonjour,
>
> Est-il possible d'optimiser une requête basée sur une
> seule table?
> Si oui, comment???
>
> select * from dossiers with(nolock)
> where rtrim(email)='pas d''adresse mail'
>
> Merci
>
> Bonne fin de journée
>
> Anna
>
>




Avatar
Fred BROUARD
le NULL est généralement plus rapide. Particulièrement sur les VARCHAR...

A +

Patrice a écrit:
Ou chaîne vide ? Ma préférence personnelle est de désactiver le NULL et
d'utiliser une chaîne vide si la distinction entre NULL et chaîne vide est
inutile ce qui me semble le cas ici...

Patrice




--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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
************************ www.datasapiens.com *************************
Avatar
Steve Kass
Anna,

L'operateur = entre deux chaînes ignore les espaces terminaux, donc vous
pouvez écrire

select * from dossiers
where email = 'pas d''adresse mail'

Cette requête peut utiliser un index sur la colonne [email].

Steve Kass
Drew University

"ANNA" wrote in message
news:2b3701c486b5$5fca6a00$
Bonjour,

Est-il possible d'optimiser une requête basée sur une
seule table?
Si oui, comment???

select * from dossiers with(nolock)
where rtrim(email)='pas d''adresse mail'

Merci

Bonne fin de journée

Anna
Avatar
Vuillermet Jacques
- Oublie le *, même si tu souhaites rapatrier toutes les colonnes.
- Tu peux essayer un index sur ce champ : si le nombre de 'pas d''adresse
mail' est important tu peux gagner quelque chose (pas de risque à essayer
!).
- Null ou chaîne vide au lieu de cette chaîne de caractères : cause perf, et
de + la signification de cette chaîne ne concerne que la couche présentation
de ton n tiers.

Dis-nous en plus si tu veux plus de perf.

Jacques.

"ANNA" a écrit dans le message de
news: 2b3701c486b5$5fca6a00$
Bonjour,

Est-il possible d'optimiser une requête basée sur une
seule table?
Si oui, comment???

select * from dossiers with(nolock)
where rtrim(email)='pas d''adresse mail'

Merci

Bonne fin de journée

Anna
Avatar
ANNA
Merci.
Mais, Ce sont les seules infos que je peux vous donner.

Bonne fin de journée

Anna
-----Message d'origine-----
- Oublie le *, même si tu souhaites rapatrier toutes les


colonnes.
- Tu peux essayer un index sur ce champ : si le nombre


de 'pas d''adresse
mail' est important tu peux gagner quelque chose (pas de


risque à essayer
!).
- Null ou chaîne vide au lieu de cette chaîne de


caractères : cause perf, et
de + la signification de cette chaîne ne concerne que la


couche présentation
de ton n tiers.

Dis-nous en plus si tu veux plus de perf.

Jacques.

"ANNA" a écrit


dans le message de
news: 2b3701c486b5$5fca6a00$
Bonjour,

Est-il possible d'optimiser une requête basée sur une
seule table?
Si oui, comment???

select * from dossiers with(nolock)
where rtrim(email)='pas d''adresse mail'

Merci

Bonne fin de journée

Anna


.



Avatar
Francis
ANNA wrote:
Bonjour,

Est-il possible d'optimiser une requête basée sur une
seule table?
Si oui, comment???

select * from dossiers with(nolock)
where rtrim(email)='pas d''adresse mail'

Merci

Bonne fin de journée

Anna


J'en profite pour poser une question sur ce sujet :
Est-ce que select * from dbo.dossiers ... serait plus rapide ?
Je crois que quand le nom du propriétaire est manquant, SQL Server doit
le rechercher, et en plus il ne peut pas réutiliser le plan d'exécution.
Ai-je bien compris ?