Bonjour,
Je cherche à optimiser une procédure stockée.
J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent etre
A partir de ces 8 variables je cherche à créer un identifiant, un exemple
@prod1 = 'C001';
@prod2 = 'H002';
@prod3 = 'C076';
@prod4 = 'H002'
le reste @prod5 ... @prod8 sont NULL dans cette exemple.
Mon identifiant alors serait de la forme C001C076H002
En faite il faut trier les 'distinct' par ordre croissant.
Pour le moment je créé une table temporaire d' une seule colonne, j'
mes 8 variables, je requete select distinct order by, je lis le resultat
je concatène !
Y a sans doute plus simple, peut etre en une seule requete O(1) ?
Parce que là je dois faire cela pour chaque ligne de ma table et les
performance c' est pas ca !
Quelqu' un aurait il une idée ?
Merci d' avance
j+
Bonjour,
Je cherche à optimiser une procédure stockée.
J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent etre
A partir de ces 8 variables je cherche à créer un identifiant, un exemple
@prod1 = 'C001';
@prod2 = 'H002';
@prod3 = 'C076';
@prod4 = 'H002'
le reste @prod5 ... @prod8 sont NULL dans cette exemple.
Mon identifiant alors serait de la forme C001C076H002
En faite il faut trier les 'distinct' par ordre croissant.
Pour le moment je créé une table temporaire d' une seule colonne, j'
mes 8 variables, je requete select distinct order by, je lis le resultat
je concatène !
Y a sans doute plus simple, peut etre en une seule requete O(1) ?
Parce que là je dois faire cela pour chaque ligne de ma table et les
performance c' est pas ca !
Quelqu' un aurait il une idée ?
Merci d' avance
j+
Bonjour,
Je cherche à optimiser une procédure stockée.
J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent etre
A partir de ces 8 variables je cherche à créer un identifiant, un exemple
@prod1 = 'C001';
@prod2 = 'H002';
@prod3 = 'C076';
@prod4 = 'H002'
le reste @prod5 ... @prod8 sont NULL dans cette exemple.
Mon identifiant alors serait de la forme C001C076H002
En faite il faut trier les 'distinct' par ordre croissant.
Pour le moment je créé une table temporaire d' une seule colonne, j'
mes 8 variables, je requete select distinct order by, je lis le resultat
je concatène !
Y a sans doute plus simple, peut etre en une seule requete O(1) ?
Parce que là je dois faire cela pour chaque ligne de ma table et les
performance c' est pas ca !
Quelqu' un aurait il une idée ?
Merci d' avance
j+
Bonjour
Ok
Ma proc n' a pas de paramètres, @prod{n} sont initialisé au fur et à
A identifier !
Créér un identifiant à partir de plusieurs variables le plus rapidement
Julien
> Bonjour,
>
> Je cherche à optimiser une procédure stockée.
>
> J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent etre
NULL.
>
> A partir de ces 8 variables je cherche à créer un identifiant, un
:
>
> @prod1 = 'C001';
>
> @prod2 = 'H002';
>
> @prod3 = 'C076';
>
> @prod4 = 'H002'
>
> le reste @prod5 ... @prod8 sont NULL dans cette exemple.
>
> Mon identifiant alors serait de la forme C001C076H002
>
> En faite il faut trier les 'distinct' par ordre croissant.
>
> Pour le moment je créé une table temporaire d' une seule colonne, j'
inserre
> mes 8 variables, je requete select distinct order by, je lis le resultat
et
> je concatène !
>
> Y a sans doute plus simple, peut etre en une seule requete O(1) ?
>
> Parce que là je dois faire cela pour chaque ligne de ma table et les
> performance c' est pas ca !
>
> Quelqu' un aurait il une idée ?
>
> Merci d' avance
>
> j+
>
>
Bonjour
Ok
Ma proc n' a pas de paramètres, @prod{n} sont initialisé au fur et à
A identifier !
Créér un identifiant à partir de plusieurs variables le plus rapidement
Julien
> Bonjour,
>
> Je cherche à optimiser une procédure stockée.
>
> J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent etre
NULL.
>
> A partir de ces 8 variables je cherche à créer un identifiant, un
:
>
> @prod1 = 'C001';
>
> @prod2 = 'H002';
>
> @prod3 = 'C076';
>
> @prod4 = 'H002'
>
> le reste @prod5 ... @prod8 sont NULL dans cette exemple.
>
> Mon identifiant alors serait de la forme C001C076H002
>
> En faite il faut trier les 'distinct' par ordre croissant.
>
> Pour le moment je créé une table temporaire d' une seule colonne, j'
inserre
> mes 8 variables, je requete select distinct order by, je lis le resultat
et
> je concatène !
>
> Y a sans doute plus simple, peut etre en une seule requete O(1) ?
>
> Parce que là je dois faire cela pour chaque ligne de ma table et les
> performance c' est pas ca !
>
> Quelqu' un aurait il une idée ?
>
> Merci d' avance
>
> j+
>
>
Bonjour
Ok
Ma proc n' a pas de paramètres, @prod{n} sont initialisé au fur et à
A identifier !
Créér un identifiant à partir de plusieurs variables le plus rapidement
Julien
> Bonjour,
>
> Je cherche à optimiser une procédure stockée.
>
> J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent etre
NULL.
>
> A partir de ces 8 variables je cherche à créer un identifiant, un
:
>
> @prod1 = 'C001';
>
> @prod2 = 'H002';
>
> @prod3 = 'C076';
>
> @prod4 = 'H002'
>
> le reste @prod5 ... @prod8 sont NULL dans cette exemple.
>
> Mon identifiant alors serait de la forme C001C076H002
>
> En faite il faut trier les 'distinct' par ordre croissant.
>
> Pour le moment je créé une table temporaire d' une seule colonne, j'
inserre
> mes 8 variables, je requete select distinct order by, je lis le resultat
et
> je concatène !
>
> Y a sans doute plus simple, peut etre en une seule requete O(1) ?
>
> Parce que là je dois faire cela pour chaque ligne de ma table et les
> performance c' est pas ca !
>
> Quelqu' un aurait il une idée ?
>
> Merci d' avance
>
> j+
>
>
Bonjour Julien,
>> Bonjour
Pourriez vous préciser un peu votre besoin car je ne suis pas certain
de comprendre.
>> Ok
Les paramètres de votre procédure stockée correspondent à quoi, des
d'une table ?
>> Ma proc n' a pas de paramètres, @prod{n} sont initialisé au fur et à
mesure du parcourt d' un curseur
L'identifiant que vous creer doit servir à quoi ?
>> A identifier !
En gros, à quelle problématique fonctionnelle voulez vous répondre ?
>> Créér un identifiant à partir de plusieurs variables le plus rapidement
possible et si possible en O(1) avec une requete magique.
Lionel
>> Julien
-----
> > Bonjour,
> >
> > Je cherche à optimiser une procédure stockée.
> >
> > J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent etre
> NULL.
> >
> > A partir de ces 8 variables je cherche à créer un identifiant, un
exemple
> :
> >
> > @prod1 = 'C001';
> >
> > @prod2 = 'H002';
> >
> > @prod3 = 'C076';
> >
> > @prod4 = 'H002'
> >
> > le reste @prod5 ... @prod8 sont NULL dans cette exemple.
> >
> > Mon identifiant alors serait de la forme C001C076H002
> >
> > En faite il faut trier les 'distinct' par ordre croissant.
> >
> > Pour le moment je créé une table temporaire d' une seule colonne, j'
> inserre
> > mes 8 variables, je requete select distinct order by, je lis le
> et
> > je concatène !
> >
> > Y a sans doute plus simple, peut etre en une seule requete O(1) ?
> >
> > Parce que là je dois faire cela pour chaque ligne de ma table et les
> > performance c' est pas ca !
> >
> > Quelqu' un aurait il une idée ?
> >
> > Merci d' avance
> >
> > j+
> >
> >
>
>
Bonjour Julien,
>> Bonjour
Pourriez vous préciser un peu votre besoin car je ne suis pas certain
de comprendre.
>> Ok
Les paramètres de votre procédure stockée correspondent à quoi, des
d'une table ?
>> Ma proc n' a pas de paramètres, @prod{n} sont initialisé au fur et à
mesure du parcourt d' un curseur
L'identifiant que vous creer doit servir à quoi ?
>> A identifier !
En gros, à quelle problématique fonctionnelle voulez vous répondre ?
>> Créér un identifiant à partir de plusieurs variables le plus rapidement
possible et si possible en O(1) avec une requete magique.
Lionel
>> Julien
-----
> > Bonjour,
> >
> > Je cherche à optimiser une procédure stockée.
> >
> > J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent etre
> NULL.
> >
> > A partir de ces 8 variables je cherche à créer un identifiant, un
exemple
> :
> >
> > @prod1 = 'C001';
> >
> > @prod2 = 'H002';
> >
> > @prod3 = 'C076';
> >
> > @prod4 = 'H002'
> >
> > le reste @prod5 ... @prod8 sont NULL dans cette exemple.
> >
> > Mon identifiant alors serait de la forme C001C076H002
> >
> > En faite il faut trier les 'distinct' par ordre croissant.
> >
> > Pour le moment je créé une table temporaire d' une seule colonne, j'
> inserre
> > mes 8 variables, je requete select distinct order by, je lis le
> et
> > je concatène !
> >
> > Y a sans doute plus simple, peut etre en une seule requete O(1) ?
> >
> > Parce que là je dois faire cela pour chaque ligne de ma table et les
> > performance c' est pas ca !
> >
> > Quelqu' un aurait il une idée ?
> >
> > Merci d' avance
> >
> > j+
> >
> >
>
>
Bonjour Julien,
>> Bonjour
Pourriez vous préciser un peu votre besoin car je ne suis pas certain
de comprendre.
>> Ok
Les paramètres de votre procédure stockée correspondent à quoi, des
d'une table ?
>> Ma proc n' a pas de paramètres, @prod{n} sont initialisé au fur et à
mesure du parcourt d' un curseur
L'identifiant que vous creer doit servir à quoi ?
>> A identifier !
En gros, à quelle problématique fonctionnelle voulez vous répondre ?
>> Créér un identifiant à partir de plusieurs variables le plus rapidement
possible et si possible en O(1) avec une requete magique.
Lionel
>> Julien
-----
> > Bonjour,
> >
> > Je cherche à optimiser une procédure stockée.
> >
> > J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent etre
> NULL.
> >
> > A partir de ces 8 variables je cherche à créer un identifiant, un
exemple
> :
> >
> > @prod1 = 'C001';
> >
> > @prod2 = 'H002';
> >
> > @prod3 = 'C076';
> >
> > @prod4 = 'H002'
> >
> > le reste @prod5 ... @prod8 sont NULL dans cette exemple.
> >
> > Mon identifiant alors serait de la forme C001C076H002
> >
> > En faite il faut trier les 'distinct' par ordre croissant.
> >
> > Pour le moment je créé une table temporaire d' une seule colonne, j'
> inserre
> > mes 8 variables, je requete select distinct order by, je lis le
> et
> > je concatène !
> >
> > Y a sans doute plus simple, peut etre en une seule requete O(1) ?
> >
> > Parce que là je dois faire cela pour chaque ligne de ma table et les
> > performance c' est pas ca !
> >
> > Quelqu' un aurait il une idée ?
> >
> > Merci d' avance
> >
> > j+
> >
> >
>
>
Je ne comprends pas bien le pb, ce n'est pas
select @id=isnull( @prod1,'') + isnull( @prod2,'')+ .... +isnull(
ou
set CONCAT_NULL_YIELDS_NULL OFF
select @id=@prod1 + @prod2 + ...+ @prod8
?
Cordialement
Jérôme
> Bonjour Julien,
>
> >> Bonjour
>
> Pourriez vous préciser un peu votre besoin car je ne suis pas certain
> de comprendre.
>
> >> Ok
>
> Les paramètres de votre procédure stockée correspondent à quoi, des
colonnes
> d'une table ?
>
> >> Ma proc n' a pas de paramètres, @prod{n} sont initialisé au fur et à
> mesure du parcourt d' un curseur
>
> L'identifiant que vous creer doit servir à quoi ?
>
> >> A identifier !
>
> En gros, à quelle problématique fonctionnelle voulez vous répondre ?
>
> >> Créér un identifiant à partir de plusieurs variables le plus
> possible et si possible en O(1) avec une requete magique.
>
> Lionel
>
> >> Julien
>
> -----
> > > Bonjour,
> > >
> > > Je cherche à optimiser une procédure stockée.
> > >
> > > J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent
> > NULL.
> > >
> > > A partir de ces 8 variables je cherche à créer un identifiant, un
> exemple
> > :
> > >
> > > @prod1 = 'C001';
> > >
> > > @prod2 = 'H002';
> > >
> > > @prod3 = 'C076';
> > >
> > > @prod4 = 'H002'
> > >
> > > le reste @prod5 ... @prod8 sont NULL dans cette exemple.
> > >
> > > Mon identifiant alors serait de la forme C001C076H002
> > >
> > > En faite il faut trier les 'distinct' par ordre croissant.
> > >
> > > Pour le moment je créé une table temporaire d' une seule colonne, j'
> > inserre
> > > mes 8 variables, je requete select distinct order by, je lis le
resultat
> > et
> > > je concatène !
> > >
> > > Y a sans doute plus simple, peut etre en une seule requete O(1) ?
> > >
> > > Parce que là je dois faire cela pour chaque ligne de ma table et les
> > > performance c' est pas ca !
> > >
> > > Quelqu' un aurait il une idée ?
> > >
> > > Merci d' avance
> > >
> > > j+
> > >
> > >
> >
> >
>
>
Je ne comprends pas bien le pb, ce n'est pas
select @id=isnull( @prod1,'') + isnull( @prod2,'')+ .... +isnull(
ou
set CONCAT_NULL_YIELDS_NULL OFF
select @id=@prod1 + @prod2 + ...+ @prod8
?
Cordialement
Jérôme
> Bonjour Julien,
>
> >> Bonjour
>
> Pourriez vous préciser un peu votre besoin car je ne suis pas certain
> de comprendre.
>
> >> Ok
>
> Les paramètres de votre procédure stockée correspondent à quoi, des
colonnes
> d'une table ?
>
> >> Ma proc n' a pas de paramètres, @prod{n} sont initialisé au fur et à
> mesure du parcourt d' un curseur
>
> L'identifiant que vous creer doit servir à quoi ?
>
> >> A identifier !
>
> En gros, à quelle problématique fonctionnelle voulez vous répondre ?
>
> >> Créér un identifiant à partir de plusieurs variables le plus
> possible et si possible en O(1) avec une requete magique.
>
> Lionel
>
> >> Julien
>
> -----
> > > Bonjour,
> > >
> > > Je cherche à optimiser une procédure stockée.
> > >
> > > J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent
> > NULL.
> > >
> > > A partir de ces 8 variables je cherche à créer un identifiant, un
> exemple
> > :
> > >
> > > @prod1 = 'C001';
> > >
> > > @prod2 = 'H002';
> > >
> > > @prod3 = 'C076';
> > >
> > > @prod4 = 'H002'
> > >
> > > le reste @prod5 ... @prod8 sont NULL dans cette exemple.
> > >
> > > Mon identifiant alors serait de la forme C001C076H002
> > >
> > > En faite il faut trier les 'distinct' par ordre croissant.
> > >
> > > Pour le moment je créé une table temporaire d' une seule colonne, j'
> > inserre
> > > mes 8 variables, je requete select distinct order by, je lis le
resultat
> > et
> > > je concatène !
> > >
> > > Y a sans doute plus simple, peut etre en une seule requete O(1) ?
> > >
> > > Parce que là je dois faire cela pour chaque ligne de ma table et les
> > > performance c' est pas ca !
> > >
> > > Quelqu' un aurait il une idée ?
> > >
> > > Merci d' avance
> > >
> > > j+
> > >
> > >
> >
> >
>
>
Je ne comprends pas bien le pb, ce n'est pas
select @id=isnull( @prod1,'') + isnull( @prod2,'')+ .... +isnull(
ou
set CONCAT_NULL_YIELDS_NULL OFF
select @id=@prod1 + @prod2 + ...+ @prod8
?
Cordialement
Jérôme
> Bonjour Julien,
>
> >> Bonjour
>
> Pourriez vous préciser un peu votre besoin car je ne suis pas certain
> de comprendre.
>
> >> Ok
>
> Les paramètres de votre procédure stockée correspondent à quoi, des
colonnes
> d'une table ?
>
> >> Ma proc n' a pas de paramètres, @prod{n} sont initialisé au fur et à
> mesure du parcourt d' un curseur
>
> L'identifiant que vous creer doit servir à quoi ?
>
> >> A identifier !
>
> En gros, à quelle problématique fonctionnelle voulez vous répondre ?
>
> >> Créér un identifiant à partir de plusieurs variables le plus
> possible et si possible en O(1) avec une requete magique.
>
> Lionel
>
> >> Julien
>
> -----
> > > Bonjour,
> > >
> > > Je cherche à optimiser une procédure stockée.
> > >
> > > J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent
> > NULL.
> > >
> > > A partir de ces 8 variables je cherche à créer un identifiant, un
> exemple
> > :
> > >
> > > @prod1 = 'C001';
> > >
> > > @prod2 = 'H002';
> > >
> > > @prod3 = 'C076';
> > >
> > > @prod4 = 'H002'
> > >
> > > le reste @prod5 ... @prod8 sont NULL dans cette exemple.
> > >
> > > Mon identifiant alors serait de la forme C001C076H002
> > >
> > > En faite il faut trier les 'distinct' par ordre croissant.
> > >
> > > Pour le moment je créé une table temporaire d' une seule colonne, j'
> > inserre
> > > mes 8 variables, je requete select distinct order by, je lis le
resultat
> > et
> > > je concatène !
> > >
> > > Y a sans doute plus simple, peut etre en une seule requete O(1) ?
> > >
> > > Parce que là je dois faire cela pour chaque ligne de ma table et les
> > > performance c' est pas ca !
> > >
> > > Quelqu' un aurait il une idée ?
> > >
> > > Merci d' avance
> > >
> > > j+
> > >
> > >
> >
> >
>
>
Bonjour Julien,Bonjour
Pourriez vous préciser un peu votre besoin car je ne suis pas certain
de comprendre.Ok
Les paramètres de votre procédure stockée correspondent à quoi, des colonnes
d'une table ?Ma proc n' a pas de paramètres, @prod{n} sont initialisé au fur et à
mesure du parcourt d' un curseur
L'identifiant que vous creer doit servir à quoi ?A identifier !
En gros, à quelle problématique fonctionnelle voulez vous répondre ?Créér un identifiant à partir de plusieurs variables le plus rapidement
possible et si possible en O(1) avec une requete magique.
LionelJulien
-----Bonjour,
Je cherche à optimiser une procédure stockée.
J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent etre
NULL.A partir de ces 8 variables je cherche à créer un identifiant, un
exemple:@prod1 = 'C001';
@prod2 = 'H002';
@prod3 = 'C076';
@prod4 = 'H002'
le reste @prod5 ... @prod8 sont NULL dans cette exemple.
Mon identifiant alors serait de la forme C001C076H002
En faite il faut trier les 'distinct' par ordre croissant.
Pour le moment je créé une table temporaire d' une seule colonne, j'
inserremes 8 variables, je requete select distinct order by, je lis le resultat
etje concatène !
Y a sans doute plus simple, peut etre en une seule requete O(1) ?
Parce que là je dois faire cela pour chaque ligne de ma table et les
performance c' est pas ca !
Quelqu' un aurait il une idée ?
Merci d' avance
j+
Bonjour Julien,
Bonjour
Pourriez vous préciser un peu votre besoin car je ne suis pas certain
de comprendre.
Ok
Les paramètres de votre procédure stockée correspondent à quoi, des colonnes
d'une table ?
Ma proc n' a pas de paramètres, @prod{n} sont initialisé au fur et à
mesure du parcourt d' un curseur
L'identifiant que vous creer doit servir à quoi ?
A identifier !
En gros, à quelle problématique fonctionnelle voulez vous répondre ?
Créér un identifiant à partir de plusieurs variables le plus rapidement
possible et si possible en O(1) avec une requete magique.
Lionel
Julien
-----
Bonjour,
Je cherche à optimiser une procédure stockée.
J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent etre
NULL.
A partir de ces 8 variables je cherche à créer un identifiant, un
exemple
:
@prod1 = 'C001';
@prod2 = 'H002';
@prod3 = 'C076';
@prod4 = 'H002'
le reste @prod5 ... @prod8 sont NULL dans cette exemple.
Mon identifiant alors serait de la forme C001C076H002
En faite il faut trier les 'distinct' par ordre croissant.
Pour le moment je créé une table temporaire d' une seule colonne, j'
inserre
mes 8 variables, je requete select distinct order by, je lis le resultat
et
je concatène !
Y a sans doute plus simple, peut etre en une seule requete O(1) ?
Parce que là je dois faire cela pour chaque ligne de ma table et les
performance c' est pas ca !
Quelqu' un aurait il une idée ?
Merci d' avance
j+
Bonjour Julien,Bonjour
Pourriez vous préciser un peu votre besoin car je ne suis pas certain
de comprendre.Ok
Les paramètres de votre procédure stockée correspondent à quoi, des colonnes
d'une table ?Ma proc n' a pas de paramètres, @prod{n} sont initialisé au fur et à
mesure du parcourt d' un curseur
L'identifiant que vous creer doit servir à quoi ?A identifier !
En gros, à quelle problématique fonctionnelle voulez vous répondre ?Créér un identifiant à partir de plusieurs variables le plus rapidement
possible et si possible en O(1) avec une requete magique.
LionelJulien
-----Bonjour,
Je cherche à optimiser une procédure stockée.
J' ai 8 variables @prod1 ... @prod8, des varchar( 4 ) qui peuvent etre
NULL.A partir de ces 8 variables je cherche à créer un identifiant, un
exemple:@prod1 = 'C001';
@prod2 = 'H002';
@prod3 = 'C076';
@prod4 = 'H002'
le reste @prod5 ... @prod8 sont NULL dans cette exemple.
Mon identifiant alors serait de la forme C001C076H002
En faite il faut trier les 'distinct' par ordre croissant.
Pour le moment je créé une table temporaire d' une seule colonne, j'
inserremes 8 variables, je requete select distinct order by, je lis le resultat
etje concatène !
Y a sans doute plus simple, peut etre en une seule requete O(1) ?
Parce que là je dois faire cela pour chaque ligne de ma table et les
performance c' est pas ca !
Quelqu' un aurait il une idée ?
Merci d' avance
j+