Je sais que l'optimisation des requêtes dépend de multiples facteurs
(Index,Types donnés..), mais, au risque de me faire taper sur les doigts par
certains d'entre vous pour les syntaxes SQL qui vont suivrent, je voudrais
savoir quelle est la méthode de sélection la plus optimum parmi celles
présentées ci dessous :
Mes pré requis sont les suivants :
A partir d'une application, je veux retourner la valeurs de ColonneA,
ColonneB a partir d'une sélection sur deux colonnes (non clefs) ColonneC,
ColonneD avec plusieurs valeurs :
SELECT ColonneA, ColonneB
FROM MaTable
WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR (ColonneC = ValeurC2
AND ColonneD = ValeurD2) OR ...)
Question 1
a.. Les Valeurs ValeurC1, ValeurC2.. étant dynamiques je ne peux utiliser
une vue car sinon je suis obliger de renvoyer tout les éléments et de
filtrer au niveau client : mauvais en terme de performances ! Non ?
b.. Les Valeurs étant multiples ValeurC1, ValeurC2.. l'utilisation d'une
Procédure stockée est impossible car elle n'accepte qu'une valeur par
paramètres ! Non. ?
c.. Donc j'opte pour une instruction SQL créée dynamiquement même si n'
étant pas compilée ce sera moins performant.
Question 2
Dans ce cas il me faut écrire la condition de restriction, j'aimerai savoir
laquelle parmi celles ci ,celle qui est la plus viable :
a.. WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR (ColonneC =
ValeurC2 AND ColonneD = ValeurD2) OR ...)
b.. WHERE (ColonneC+ColonneD IN (ValeurC1+ValeurD1, ValeurC2+ValeurD2,..))
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
News Groups
Après Analyse des plans d'exécutions, la métode a coute moins que la méthode b, mais les temps de réponse sont similaires ?!
Je renvoie mon appel pour avoir une confirmation à mes questions.. Merci de votre aide, Thierry.
"News Groups" a écrit dans le message de news: 41385dc0$0$20434$
Bonjour,
Je sais que l'optimisation des requêtes dépend de multiples facteurs (Index,Types donnés..), mais, au risque de me faire taper sur les doigts
par
certains d'entre vous pour les syntaxes SQL qui vont suivrent, je voudrais savoir quelle est la méthode de sélection la plus optimum parmi celles présentées ci dessous :
Mes pré requis sont les suivants :
A partir d'une application, je veux retourner la valeurs de ColonneA, ColonneB a partir d'une sélection sur deux colonnes (non clefs) ColonneC, ColonneD avec plusieurs valeurs :
SELECT ColonneA, ColonneB
FROM MaTable
WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR (ColonneC ValeurC2 AND ColonneD = ValeurD2) OR ...)
Question 1
a.. Les Valeurs ValeurC1, ValeurC2.. étant dynamiques je ne peux
utiliser
une vue car sinon je suis obliger de renvoyer tout les éléments et de filtrer au niveau client : mauvais en terme de performances ! Non ? b.. Les Valeurs étant multiples ValeurC1, ValeurC2.. l'utilisation d'une Procédure stockée est impossible car elle n'accepte qu'une valeur par paramètres ! Non. ? c.. Donc j'opte pour une instruction SQL créée dynamiquement même si n' étant pas compilée ce sera moins performant. Question 2
Dans ce cas il me faut écrire la condition de restriction, j'aimerai
savoir
laquelle parmi celles ci ,celle qui est la plus viable :
a.. WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR (ColonneC > ValeurC2 AND ColonneD = ValeurD2) OR ...) b.. WHERE (ColonneC+ColonneD IN (ValeurC1+ValeurD1,
ValeurC2+ValeurD2,..))
Merci de votre compréhension et de votre aide.
Thierry.
Après Analyse des plans d'exécutions, la métode a coute moins que la méthode
b, mais les temps de réponse sont similaires ?!
Je renvoie mon appel pour avoir une confirmation à mes questions..
Merci de votre aide,
Thierry.
"News Groups" <bjt_nwsgrp@yahoo.fr> a écrit dans le message de news:
41385dc0$0$20434$626a14ce@news.free.fr...
Bonjour,
Je sais que l'optimisation des requêtes dépend de multiples facteurs
(Index,Types donnés..), mais, au risque de me faire taper sur les doigts
par
certains d'entre vous pour les syntaxes SQL qui vont suivrent, je voudrais
savoir quelle est la méthode de sélection la plus optimum parmi celles
présentées ci dessous :
Mes pré requis sont les suivants :
A partir d'une application, je veux retourner la valeurs de ColonneA,
ColonneB a partir d'une sélection sur deux colonnes (non clefs) ColonneC,
ColonneD avec plusieurs valeurs :
SELECT ColonneA, ColonneB
FROM MaTable
WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR (ColonneC ValeurC2
AND ColonneD = ValeurD2) OR ...)
Question 1
a.. Les Valeurs ValeurC1, ValeurC2.. étant dynamiques je ne peux
utiliser
une vue car sinon je suis obliger de renvoyer tout les éléments et de
filtrer au niveau client : mauvais en terme de performances ! Non ?
b.. Les Valeurs étant multiples ValeurC1, ValeurC2.. l'utilisation d'une
Procédure stockée est impossible car elle n'accepte qu'une valeur par
paramètres ! Non. ?
c.. Donc j'opte pour une instruction SQL créée dynamiquement même si n'
étant pas compilée ce sera moins performant.
Question 2
Dans ce cas il me faut écrire la condition de restriction, j'aimerai
savoir
laquelle parmi celles ci ,celle qui est la plus viable :
a.. WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR (ColonneC > ValeurC2 AND ColonneD = ValeurD2) OR ...)
b.. WHERE (ColonneC+ColonneD IN (ValeurC1+ValeurD1,
Après Analyse des plans d'exécutions, la métode a coute moins que la méthode b, mais les temps de réponse sont similaires ?!
Je renvoie mon appel pour avoir une confirmation à mes questions.. Merci de votre aide, Thierry.
"News Groups" a écrit dans le message de news: 41385dc0$0$20434$
Bonjour,
Je sais que l'optimisation des requêtes dépend de multiples facteurs (Index,Types donnés..), mais, au risque de me faire taper sur les doigts
par
certains d'entre vous pour les syntaxes SQL qui vont suivrent, je voudrais savoir quelle est la méthode de sélection la plus optimum parmi celles présentées ci dessous :
Mes pré requis sont les suivants :
A partir d'une application, je veux retourner la valeurs de ColonneA, ColonneB a partir d'une sélection sur deux colonnes (non clefs) ColonneC, ColonneD avec plusieurs valeurs :
SELECT ColonneA, ColonneB
FROM MaTable
WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR (ColonneC ValeurC2 AND ColonneD = ValeurD2) OR ...)
Question 1
a.. Les Valeurs ValeurC1, ValeurC2.. étant dynamiques je ne peux
utiliser
une vue car sinon je suis obliger de renvoyer tout les éléments et de filtrer au niveau client : mauvais en terme de performances ! Non ? b.. Les Valeurs étant multiples ValeurC1, ValeurC2.. l'utilisation d'une Procédure stockée est impossible car elle n'accepte qu'une valeur par paramètres ! Non. ? c.. Donc j'opte pour une instruction SQL créée dynamiquement même si n' étant pas compilée ce sera moins performant. Question 2
Dans ce cas il me faut écrire la condition de restriction, j'aimerai
savoir
laquelle parmi celles ci ,celle qui est la plus viable :
a.. WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR (ColonneC > ValeurC2 AND ColonneD = ValeurD2) OR ...) b.. WHERE (ColonneC+ColonneD IN (ValeurC1+ValeurD1,
ValeurC2+ValeurD2,..))
Merci de votre compréhension et de votre aide.
Thierry.
lionelp
Bonjour,
Peut-être qu'une colonne calculée C+D avec un index dessus permet d'amméliorer les perfs ensuite le requête devient: select ... from table where colonne_calculée in (val1+val2, val3+val4, ...) avec un index sur colonne_calculée.
un "set statistics profile on" permet de comparer l'estimé avec le réalisé, ça peut être utile.
Cordialement, LionelP
-----Message d'origine----- Après Analyse des plans d'exécutions, la métode a coute
moins que la méthode
b, mais les temps de réponse sont similaires ?!
Je renvoie mon appel pour avoir une confirmation à mes
questions..
Merci de votre aide, Thierry.
"News Groups" a écrit dans le
message de news:
41385dc0$0$20434$
Bonjour,
Je sais que l'optimisation des requêtes dépend de
multiples facteurs
(Index,Types donnés..), mais, au risque de me faire
taper sur les doigts
par
certains d'entre vous pour les syntaxes SQL qui vont
suivrent, je voudrais
savoir quelle est la méthode de sélection la plus
optimum parmi celles
présentées ci dessous :
Mes pré requis sont les suivants :
A partir d'une application, je veux retourner la
valeurs de ColonneA,
ColonneB a partir d'une sélection sur deux colonnes
(non clefs) ColonneC,
ColonneD avec plusieurs valeurs :
SELECT ColonneA, ColonneB
FROM MaTable
WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR
(ColonneC =
ValeurC2
AND ColonneD = ValeurD2) OR ...)
Question 1
a.. Les Valeurs ValeurC1, ValeurC2.. étant dynamiques
je ne peux
utiliser
une vue car sinon je suis obliger de renvoyer tout les
éléments et de
filtrer au niveau client : mauvais en terme de
performances ! Non ?
b.. Les Valeurs étant multiples ValeurC1, ValeurC2..
l'utilisation d'une
Procédure stockée est impossible car elle n'accepte
qu'une valeur par
paramètres ! Non. ? c.. Donc j'opte pour une instruction SQL créée
dynamiquement même si n'
étant pas compilée ce sera moins performant. Question 2
Dans ce cas il me faut écrire la condition de
restriction, j'aimerai
savoir
laquelle parmi celles ci ,celle qui est la plus viable :
a.. WHERE ((ColonneC = ValeurC1 AND ColonneD =
ValeurD1) OR (ColonneC =
ValeurC2 AND ColonneD = ValeurD2) OR ...) b.. WHERE (ColonneC+ColonneD IN (ValeurC1+ValeurD1,
ValeurC2+ValeurD2,..))
Merci de votre compréhension et de votre aide.
Thierry.
.
Bonjour,
Peut-être qu'une colonne calculée C+D avec un index dessus
permet d'amméliorer les perfs
ensuite le requête devient:
select ...
from table
where colonne_calculée in (val1+val2, val3+val4, ...)
avec un index sur colonne_calculée.
un "set statistics profile on" permet de comparer l'estimé
avec le réalisé, ça peut être utile.
Cordialement,
LionelP
-----Message d'origine-----
Après Analyse des plans d'exécutions, la métode a coute
moins que la méthode
b, mais les temps de réponse sont similaires ?!
Je renvoie mon appel pour avoir une confirmation à mes
questions..
Merci de votre aide,
Thierry.
"News Groups" <bjt_nwsgrp@yahoo.fr> a écrit dans le
message de news:
41385dc0$0$20434$626a14ce@news.free.fr...
Bonjour,
Je sais que l'optimisation des requêtes dépend de
multiples facteurs
(Index,Types donnés..), mais, au risque de me faire
taper sur les doigts
par
certains d'entre vous pour les syntaxes SQL qui vont
suivrent, je voudrais
savoir quelle est la méthode de sélection la plus
optimum parmi celles
présentées ci dessous :
Mes pré requis sont les suivants :
A partir d'une application, je veux retourner la
valeurs de ColonneA,
ColonneB a partir d'une sélection sur deux colonnes
(non clefs) ColonneC,
ColonneD avec plusieurs valeurs :
SELECT ColonneA, ColonneB
FROM MaTable
WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR
(ColonneC =
ValeurC2
AND ColonneD = ValeurD2) OR ...)
Question 1
a.. Les Valeurs ValeurC1, ValeurC2.. étant dynamiques
je ne peux
utiliser
une vue car sinon je suis obliger de renvoyer tout les
éléments et de
filtrer au niveau client : mauvais en terme de
performances ! Non ?
b.. Les Valeurs étant multiples ValeurC1, ValeurC2..
l'utilisation d'une
Procédure stockée est impossible car elle n'accepte
qu'une valeur par
paramètres ! Non. ?
c.. Donc j'opte pour une instruction SQL créée
dynamiquement même si n'
étant pas compilée ce sera moins performant.
Question 2
Dans ce cas il me faut écrire la condition de
restriction, j'aimerai
savoir
laquelle parmi celles ci ,celle qui est la plus viable :
a.. WHERE ((ColonneC = ValeurC1 AND ColonneD =
ValeurD1) OR (ColonneC =
ValeurC2 AND ColonneD = ValeurD2) OR ...)
b.. WHERE (ColonneC+ColonneD IN (ValeurC1+ValeurD1,
Peut-être qu'une colonne calculée C+D avec un index dessus permet d'amméliorer les perfs ensuite le requête devient: select ... from table where colonne_calculée in (val1+val2, val3+val4, ...) avec un index sur colonne_calculée.
un "set statistics profile on" permet de comparer l'estimé avec le réalisé, ça peut être utile.
Cordialement, LionelP
-----Message d'origine----- Après Analyse des plans d'exécutions, la métode a coute
moins que la méthode
b, mais les temps de réponse sont similaires ?!
Je renvoie mon appel pour avoir une confirmation à mes
questions..
Merci de votre aide, Thierry.
"News Groups" a écrit dans le
message de news:
41385dc0$0$20434$
Bonjour,
Je sais que l'optimisation des requêtes dépend de
multiples facteurs
(Index,Types donnés..), mais, au risque de me faire
taper sur les doigts
par
certains d'entre vous pour les syntaxes SQL qui vont
suivrent, je voudrais
savoir quelle est la méthode de sélection la plus
optimum parmi celles
présentées ci dessous :
Mes pré requis sont les suivants :
A partir d'une application, je veux retourner la
valeurs de ColonneA,
ColonneB a partir d'une sélection sur deux colonnes
(non clefs) ColonneC,
ColonneD avec plusieurs valeurs :
SELECT ColonneA, ColonneB
FROM MaTable
WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR
(ColonneC =
ValeurC2
AND ColonneD = ValeurD2) OR ...)
Question 1
a.. Les Valeurs ValeurC1, ValeurC2.. étant dynamiques
je ne peux
utiliser
une vue car sinon je suis obliger de renvoyer tout les
éléments et de
filtrer au niveau client : mauvais en terme de
performances ! Non ?
b.. Les Valeurs étant multiples ValeurC1, ValeurC2..
l'utilisation d'une
Procédure stockée est impossible car elle n'accepte
qu'une valeur par
paramètres ! Non. ? c.. Donc j'opte pour une instruction SQL créée
dynamiquement même si n'
étant pas compilée ce sera moins performant. Question 2
Dans ce cas il me faut écrire la condition de
restriction, j'aimerai
savoir
laquelle parmi celles ci ,celle qui est la plus viable :
a.. WHERE ((ColonneC = ValeurC1 AND ColonneD =
ValeurD1) OR (ColonneC =
ValeurC2 AND ColonneD = ValeurD2) OR ...) b.. WHERE (ColonneC+ColonneD IN (ValeurC1+ValeurD1,
ValeurC2+ValeurD2,..))
Merci de votre compréhension et de votre aide.
Thierry.
.
News Groups
Merci de ton aide. Thierry. "lionelp" a écrit dans le message de news: 09e901c491c5$0b7fb480$ Bonjour,
Peut-être qu'une colonne calculée C+D avec un index dessus permet d'amméliorer les perfs ensuite le requête devient: select ... from table where colonne_calculée in (val1+val2, val3+val4, ...) avec un index sur colonne_calculée.
un "set statistics profile on" permet de comparer l'estimé avec le réalisé, ça peut être utile.
Cordialement, LionelP
-----Message d'origine----- Après Analyse des plans d'exécutions, la métode a coute
moins que la méthode
b, mais les temps de réponse sont similaires ?!
Je renvoie mon appel pour avoir une confirmation à mes
questions..
Merci de votre aide, Thierry.
"News Groups" a écrit dans le
message de news:
41385dc0$0$20434$
Bonjour,
Je sais que l'optimisation des requêtes dépend de
multiples facteurs
(Index,Types donnés..), mais, au risque de me faire
taper sur les doigts
par
certains d'entre vous pour les syntaxes SQL qui vont
suivrent, je voudrais
savoir quelle est la méthode de sélection la plus
optimum parmi celles
présentées ci dessous :
Mes pré requis sont les suivants :
A partir d'une application, je veux retourner la
valeurs de ColonneA,
ColonneB a partir d'une sélection sur deux colonnes
(non clefs) ColonneC,
ColonneD avec plusieurs valeurs :
SELECT ColonneA, ColonneB
FROM MaTable
WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR
(ColonneC >ValeurC2
AND ColonneD = ValeurD2) OR ...)
Question 1
a.. Les Valeurs ValeurC1, ValeurC2.. étant dynamiques
je ne peux
utiliser
une vue car sinon je suis obliger de renvoyer tout les
éléments et de
filtrer au niveau client : mauvais en terme de
performances ! Non ?
b.. Les Valeurs étant multiples ValeurC1, ValeurC2..
l'utilisation d'une
Procédure stockée est impossible car elle n'accepte
qu'une valeur par
paramètres ! Non. ? c.. Donc j'opte pour une instruction SQL créée
dynamiquement même si n'
étant pas compilée ce sera moins performant. Question 2
Dans ce cas il me faut écrire la condition de
restriction, j'aimerai
savoir
laquelle parmi celles ci ,celle qui est la plus viable :
a.. WHERE ((ColonneC = ValeurC1 AND ColonneD ValeurD1) OR (ColonneC >> ValeurC2 AND ColonneD = ValeurD2) OR ...) b.. WHERE (ColonneC+ColonneD IN (ValeurC1+ValeurD1,
ValeurC2+ValeurD2,..))
Merci de votre compréhension et de votre aide.
Thierry.
.
Merci de ton aide.
Thierry.
"lionelp" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 09e901c491c5$0b7fb480$a401280a@phx.gbl...
Bonjour,
Peut-être qu'une colonne calculée C+D avec un index dessus
permet d'amméliorer les perfs
ensuite le requête devient:
select ...
from table
where colonne_calculée in (val1+val2, val3+val4, ...)
avec un index sur colonne_calculée.
un "set statistics profile on" permet de comparer l'estimé
avec le réalisé, ça peut être utile.
Cordialement,
LionelP
-----Message d'origine-----
Après Analyse des plans d'exécutions, la métode a coute
moins que la méthode
b, mais les temps de réponse sont similaires ?!
Je renvoie mon appel pour avoir une confirmation à mes
questions..
Merci de votre aide,
Thierry.
"News Groups" <bjt_nwsgrp@yahoo.fr> a écrit dans le
message de news:
41385dc0$0$20434$626a14ce@news.free.fr...
Bonjour,
Je sais que l'optimisation des requêtes dépend de
multiples facteurs
(Index,Types donnés..), mais, au risque de me faire
taper sur les doigts
par
certains d'entre vous pour les syntaxes SQL qui vont
suivrent, je voudrais
savoir quelle est la méthode de sélection la plus
optimum parmi celles
présentées ci dessous :
Mes pré requis sont les suivants :
A partir d'une application, je veux retourner la
valeurs de ColonneA,
ColonneB a partir d'une sélection sur deux colonnes
(non clefs) ColonneC,
ColonneD avec plusieurs valeurs :
SELECT ColonneA, ColonneB
FROM MaTable
WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR
(ColonneC >ValeurC2
AND ColonneD = ValeurD2) OR ...)
Question 1
a.. Les Valeurs ValeurC1, ValeurC2.. étant dynamiques
je ne peux
utiliser
une vue car sinon je suis obliger de renvoyer tout les
éléments et de
filtrer au niveau client : mauvais en terme de
performances ! Non ?
b.. Les Valeurs étant multiples ValeurC1, ValeurC2..
l'utilisation d'une
Procédure stockée est impossible car elle n'accepte
qu'une valeur par
paramètres ! Non. ?
c.. Donc j'opte pour une instruction SQL créée
dynamiquement même si n'
étant pas compilée ce sera moins performant.
Question 2
Dans ce cas il me faut écrire la condition de
restriction, j'aimerai
savoir
laquelle parmi celles ci ,celle qui est la plus viable :
a.. WHERE ((ColonneC = ValeurC1 AND ColonneD ValeurD1) OR (ColonneC >> ValeurC2 AND ColonneD = ValeurD2) OR ...)
b.. WHERE (ColonneC+ColonneD IN (ValeurC1+ValeurD1,
Merci de ton aide. Thierry. "lionelp" a écrit dans le message de news: 09e901c491c5$0b7fb480$ Bonjour,
Peut-être qu'une colonne calculée C+D avec un index dessus permet d'amméliorer les perfs ensuite le requête devient: select ... from table where colonne_calculée in (val1+val2, val3+val4, ...) avec un index sur colonne_calculée.
un "set statistics profile on" permet de comparer l'estimé avec le réalisé, ça peut être utile.
Cordialement, LionelP
-----Message d'origine----- Après Analyse des plans d'exécutions, la métode a coute
moins que la méthode
b, mais les temps de réponse sont similaires ?!
Je renvoie mon appel pour avoir une confirmation à mes
questions..
Merci de votre aide, Thierry.
"News Groups" a écrit dans le
message de news:
41385dc0$0$20434$
Bonjour,
Je sais que l'optimisation des requêtes dépend de
multiples facteurs
(Index,Types donnés..), mais, au risque de me faire
taper sur les doigts
par
certains d'entre vous pour les syntaxes SQL qui vont
suivrent, je voudrais
savoir quelle est la méthode de sélection la plus
optimum parmi celles
présentées ci dessous :
Mes pré requis sont les suivants :
A partir d'une application, je veux retourner la
valeurs de ColonneA,
ColonneB a partir d'une sélection sur deux colonnes
(non clefs) ColonneC,
ColonneD avec plusieurs valeurs :
SELECT ColonneA, ColonneB
FROM MaTable
WHERE ((ColonneC = ValeurC1 AND ColonneD = ValeurD1) OR
(ColonneC >ValeurC2
AND ColonneD = ValeurD2) OR ...)
Question 1
a.. Les Valeurs ValeurC1, ValeurC2.. étant dynamiques
je ne peux
utiliser
une vue car sinon je suis obliger de renvoyer tout les
éléments et de
filtrer au niveau client : mauvais en terme de
performances ! Non ?
b.. Les Valeurs étant multiples ValeurC1, ValeurC2..
l'utilisation d'une
Procédure stockée est impossible car elle n'accepte
qu'une valeur par
paramètres ! Non. ? c.. Donc j'opte pour une instruction SQL créée
dynamiquement même si n'
étant pas compilée ce sera moins performant. Question 2
Dans ce cas il me faut écrire la condition de
restriction, j'aimerai
savoir
laquelle parmi celles ci ,celle qui est la plus viable :
a.. WHERE ((ColonneC = ValeurC1 AND ColonneD ValeurD1) OR (ColonneC >> ValeurC2 AND ColonneD = ValeurD2) OR ...) b.. WHERE (ColonneC+ColonneD IN (ValeurC1+ValeurD1,