Bonjour,
J'ai une table avec plusieurs milions d'enregistrements.
Je souhaite faire une recherche sur un champ (ma clé primaire en varChar de
255) du type MonChamp like '%TOTO%'
Mais des que j'utilise un like avec 2% c'est tres tres long.
Que dois-je faire pour amélioré mon temps de recherche ?
Merci d'avance car la j'ai tout testé (réindex, patindex et companie .... )
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
Med Bouchenafa
Lorsque tu utilises le premier %, l'index devient inutile.
-- Bien cordialement Med Bouchenafa
"Twister" a écrit dans le message de news:
Bonjour, J'ai une table avec plusieurs milions d'enregistrements. Je souhaite faire une recherche sur un champ (ma clé primaire en varChar de 255) du type MonChamp like '%TOTO%' Mais des que j'utilise un like avec 2% c'est tres tres long.
Que dois-je faire pour amélioré mon temps de recherche ? Merci d'avance car la j'ai tout testé (réindex, patindex et companie .... )
Lorsque tu utilises le premier %, l'index devient inutile.
--
Bien cordialement
Med Bouchenafa
"Twister" <Twister@discussions.microsoft.com> a écrit dans le message de
news: 290DEFD6-3B53-4E34-A166-2BBDFF3446DC@microsoft.com...
Bonjour,
J'ai une table avec plusieurs milions d'enregistrements.
Je souhaite faire une recherche sur un champ (ma clé primaire en varChar
de
255) du type MonChamp like '%TOTO%'
Mais des que j'utilise un like avec 2% c'est tres tres long.
Que dois-je faire pour amélioré mon temps de recherche ?
Merci d'avance car la j'ai tout testé (réindex, patindex et companie
.... )
Lorsque tu utilises le premier %, l'index devient inutile.
-- Bien cordialement Med Bouchenafa
"Twister" a écrit dans le message de news:
Bonjour, J'ai une table avec plusieurs milions d'enregistrements. Je souhaite faire une recherche sur un champ (ma clé primaire en varChar de 255) du type MonChamp like '%TOTO%' Mais des que j'utilise un like avec 2% c'est tres tres long.
Que dois-je faire pour amélioré mon temps de recherche ? Merci d'avance car la j'ai tout testé (réindex, patindex et companie .... )
Jean-Nicolas BERGER
Si ce genre de besoin est fort, oriente-toi eventuellement vers la recherche de texte intégral... JN.
"Med Bouchenafa" a écrit dans le message de news: %
Lorsque tu utilises le premier %, l'index devient inutile.
-- Bien cordialement Med Bouchenafa
"Twister" a écrit dans le message de news:
Bonjour, J'ai une table avec plusieurs milions d'enregistrements. Je souhaite faire une recherche sur un champ (ma clé primaire en varChar de 255) du type MonChamp like '%TOTO%' Mais des que j'utilise un like avec 2% c'est tres tres long.
Que dois-je faire pour amélioré mon temps de recherche ? Merci d'avance car la j'ai tout testé (réindex, patindex et companie .... )
Si ce genre de besoin est fort, oriente-toi eventuellement vers la recherche
de texte intégral...
JN.
"Med Bouchenafa" <com.hotmail@bouchenafa> a écrit dans le message de news:
%23ZvhvSOIFHA.2640@TK2MSFTNGP09.phx.gbl...
Lorsque tu utilises le premier %, l'index devient inutile.
--
Bien cordialement
Med Bouchenafa
"Twister" <Twister@discussions.microsoft.com> a écrit dans le message de
news: 290DEFD6-3B53-4E34-A166-2BBDFF3446DC@microsoft.com...
Bonjour,
J'ai une table avec plusieurs milions d'enregistrements.
Je souhaite faire une recherche sur un champ (ma clé primaire en varChar
de
255) du type MonChamp like '%TOTO%'
Mais des que j'utilise un like avec 2% c'est tres tres long.
Que dois-je faire pour amélioré mon temps de recherche ?
Merci d'avance car la j'ai tout testé (réindex, patindex et companie
.... )
Si ce genre de besoin est fort, oriente-toi eventuellement vers la recherche de texte intégral... JN.
"Med Bouchenafa" a écrit dans le message de news: %
Lorsque tu utilises le premier %, l'index devient inutile.
-- Bien cordialement Med Bouchenafa
"Twister" a écrit dans le message de news:
Bonjour, J'ai une table avec plusieurs milions d'enregistrements. Je souhaite faire une recherche sur un champ (ma clé primaire en varChar de 255) du type MonChamp like '%TOTO%' Mais des que j'utilise un like avec 2% c'est tres tres long.
Que dois-je faire pour amélioré mon temps de recherche ? Merci d'avance car la j'ai tout testé (réindex, patindex et companie .... )
Fred BROUARD
1) l'utilisation d'une clef de type littéral (alphanumérique) est moins performante que dans le cas du numérique 2) l'utilisation d'un alpha de taille variable est moins performant qu'un entier de taille fixe 3) l'utilisation d'une clef longue est moins performante qu'une clef courte.
L'idéal est un entier de la taille du mot du processeur.
Quand aux recherches avec joker (like) elle ne peuvent prendre en compte un index que dans le cas ou l'unique joker est situé en fin de motif (exemple : LIKE 'toto%')
Endin, l'utilisation d'un index textuel n'est intéressant que si vous recherchez des mots...
En d'autres termes, il semble à l'évidence que votre modèle de données soit mal pensé ! => contre performant...
A +
Twister a écrit:
Bonjour, J'ai une table avec plusieurs milions d'enregistrements. Je souhaite faire une recherche sur un champ (ma clé primaire en varChar de 255) du type MonChamp like '%TOTO%' Mais des que j'utilise un like avec 2% c'est tres tres long.
Que dois-je faire pour amélioré mon temps de recherche ? Merci d'avance car la j'ai tout testé (réindex, patindex et companie .... )
-- 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 *************************
1) l'utilisation d'une clef de type littéral (alphanumérique) est moins
performante que dans le cas du numérique
2) l'utilisation d'un alpha de taille variable est moins performant qu'un entier
de taille fixe
3) l'utilisation d'une clef longue est moins performante qu'une clef courte.
L'idéal est un entier de la taille du mot du processeur.
Quand aux recherches avec joker (like) elle ne peuvent prendre en compte un
index que dans le cas ou l'unique joker est situé en fin de motif (exemple :
LIKE 'toto%')
Endin, l'utilisation d'un index textuel n'est intéressant que si vous recherchez
des mots...
En d'autres termes, il semble à l'évidence que votre modèle de données soit mal
pensé ! => contre performant...
A +
Twister a écrit:
Bonjour,
J'ai une table avec plusieurs milions d'enregistrements.
Je souhaite faire une recherche sur un champ (ma clé primaire en varChar de
255) du type MonChamp like '%TOTO%'
Mais des que j'utilise un like avec 2% c'est tres tres long.
Que dois-je faire pour amélioré mon temps de recherche ?
Merci d'avance car la j'ai tout testé (réindex, patindex et companie .... )
--
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 *************************
1) l'utilisation d'une clef de type littéral (alphanumérique) est moins performante que dans le cas du numérique 2) l'utilisation d'un alpha de taille variable est moins performant qu'un entier de taille fixe 3) l'utilisation d'une clef longue est moins performante qu'une clef courte.
L'idéal est un entier de la taille du mot du processeur.
Quand aux recherches avec joker (like) elle ne peuvent prendre en compte un index que dans le cas ou l'unique joker est situé en fin de motif (exemple : LIKE 'toto%')
Endin, l'utilisation d'un index textuel n'est intéressant que si vous recherchez des mots...
En d'autres termes, il semble à l'évidence que votre modèle de données soit mal pensé ! => contre performant...
A +
Twister a écrit:
Bonjour, J'ai une table avec plusieurs milions d'enregistrements. Je souhaite faire une recherche sur un champ (ma clé primaire en varChar de 255) du type MonChamp like '%TOTO%' Mais des que j'utilise un like avec 2% c'est tres tres long.
Que dois-je faire pour amélioré mon temps de recherche ? Merci d'avance car la j'ai tout testé (réindex, patindex et companie .... )
-- 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 *************************
Philippe T [MS]
Bonjour,
Oui, le CONTAINS est plus efficace dans ces conditions mais consomme de la place si le nombre d'enregistrement est important. De plus, la création du catalogue la première fois est relativement longue : Vivement SQL 2005 !!! :-)
Phil. ________________________________________________________ Philippe TROTIN http://blogs.msdn.com/ptrotin Microsoft Services France http://www.microsoft.com/france
"Jean-Nicolas BERGER" wrote in message news:
Si ce genre de besoin est fort, oriente-toi eventuellement vers la
recherche
de texte intégral... JN.
"Med Bouchenafa" a écrit dans le message de news: % > Lorsque tu utilises le premier %, l'index devient inutile. > > -- > Bien cordialement > Med Bouchenafa > > "Twister" a écrit dans le message de > news: >> Bonjour, >> J'ai une table avec plusieurs milions d'enregistrements. >> Je souhaite faire une recherche sur un champ (ma clé primaire en
varChar
>> de >> 255) du type MonChamp like '%TOTO%' >> Mais des que j'utilise un like avec 2% c'est tres tres long. >> >> Que dois-je faire pour amélioré mon temps de recherche ? >> Merci d'avance car la j'ai tout testé (réindex, patindex et companie >> .... ) > >
Bonjour,
Oui, le CONTAINS est plus efficace dans ces conditions mais consomme de la
place si le nombre d'enregistrement est important. De plus, la création du
catalogue la première fois est relativement longue : Vivement SQL 2005 !!!
:-)
Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france
"Jean-Nicolas BERGER" <j-n.enlevezmoi.berger@club-internet.fr> wrote in
message news:ucKDP8OIFHA.2740@TK2MSFTNGP12.phx.gbl...
Si ce genre de besoin est fort, oriente-toi eventuellement vers la
recherche
de texte intégral...
JN.
"Med Bouchenafa" <com.hotmail@bouchenafa> a écrit dans le message de news:
%23ZvhvSOIFHA.2640@TK2MSFTNGP09.phx.gbl...
> Lorsque tu utilises le premier %, l'index devient inutile.
>
> --
> Bien cordialement
> Med Bouchenafa
>
> "Twister" <Twister@discussions.microsoft.com> a écrit dans le message de
> news: 290DEFD6-3B53-4E34-A166-2BBDFF3446DC@microsoft.com...
>> Bonjour,
>> J'ai une table avec plusieurs milions d'enregistrements.
>> Je souhaite faire une recherche sur un champ (ma clé primaire en
varChar
>> de
>> 255) du type MonChamp like '%TOTO%'
>> Mais des que j'utilise un like avec 2% c'est tres tres long.
>>
>> Que dois-je faire pour amélioré mon temps de recherche ?
>> Merci d'avance car la j'ai tout testé (réindex, patindex et companie
>> .... )
>
>
Oui, le CONTAINS est plus efficace dans ces conditions mais consomme de la place si le nombre d'enregistrement est important. De plus, la création du catalogue la première fois est relativement longue : Vivement SQL 2005 !!! :-)
Phil. ________________________________________________________ Philippe TROTIN http://blogs.msdn.com/ptrotin Microsoft Services France http://www.microsoft.com/france
"Jean-Nicolas BERGER" wrote in message news:
Si ce genre de besoin est fort, oriente-toi eventuellement vers la
recherche
de texte intégral... JN.
"Med Bouchenafa" a écrit dans le message de news: % > Lorsque tu utilises le premier %, l'index devient inutile. > > -- > Bien cordialement > Med Bouchenafa > > "Twister" a écrit dans le message de > news: >> Bonjour, >> J'ai une table avec plusieurs milions d'enregistrements. >> Je souhaite faire une recherche sur un champ (ma clé primaire en
varChar
>> de >> 255) du type MonChamp like '%TOTO%' >> Mais des que j'utilise un like avec 2% c'est tres tres long. >> >> Que dois-je faire pour amélioré mon temps de recherche ? >> Merci d'avance car la j'ai tout testé (réindex, patindex et companie >> .... ) > >