On Thu, 16 Nov 2000, Gilbert ROBERT wrote:
> La version de postgres est la 7.0 sur une Ultra 5 sous solaris 2.6.
>
> > > J'ai bien essay� de faire des index sur la colonne id p.e mais le temps
> > > de r�ponse est toujours aussi long!
> > Ainsi:
> > CREATE INDEX sol_f_id_idx ON sol_f(id); # ceci prend du temps.
>
> c'est exactement comme cela.
>
> > Donc l'index semble avoir un effet, du moins pour ma configuration.
>
> Mais pas dans mon cas! ou alors j'ai fais qqchose de faux.
> Dans l'autre index ou il n'y a que 130752 c'est quasi instantan�.
>
> > hum, id �tant un integer me semble-t-il, j'aurais fait
> > WHERE id = 130751;
> C'est juste je me suis plant� dans mon cut&paste
J'ai un peu loup� l'histoire qui c'est pass�, mais je tenais � pr�ciser
un truc. Si tu met dans ta clause WHERE id LIKE '130751'; une base de
donn�e effectuant la recherche va faire une esp�ce de type casting pour
chaque tuple de la table. Il est imp�ratif d'utiliser un op�rateur
math�matique et un nombre pour ton test. Soit:
id = 130751;
et rien d'autre. A partir du moment ou tu met ton chiffre entre
guillemets, c'est une cha�ne de caract�re!
n.b. Si tu met un indexe sur un champ contenant une cha�ne de caract�re
justement et que tu utilises un like, il faut t'assurer que tu n'utilises
pas de wild card au d�but de ton crit�re de recherche. Sans quoi ton
indexe n'est d'office pas utilis�. Par un exemple:
WHERE id LIKE '%urfeurFou%'; --> TRES MAUVAIS
WHERE id LIKE 'SurfeurFou%' OR
id LIKE 'surfeurFou%': --> BEAUCOUP MIEUX
Essaie �a, si tu ne l'as pas d�j� fait!
> Je viens de faire un
> EXPLAIN SELECT * FROM main_index_f WHERE id='130751';
> Index Scan using main_index_f_pkey on main_index_f (cost=0.00..8.14 rows=10
>width=40)
>
> et puis un
>
> EXPLAIN SELECT * FROM sol_f WHERE id='130751';
> Seq Scan on sol_f (cost=0.00..77604.64 rows=39087 width=24)
>
> Donc la clairement j'en deduis qu'il n'utilise pas mon index!
> et pourtant j'en ai bien fait un
>
> sylex2000=> CREATE INDEX sol_f_id_idx ON sol_f (id);
> CREATE
>
> sylex2000=> \di
> List of relations
> Name | Type | Owner
> -------------------+-------+--------
> main_index_d_pkey | index | robert
> main_index_f_pkey | index | robert
> main_index_i_pkey | index | robert
> sol_f_id_idx | index | robert
> (4 rows)
>
> J'avoue ne pas bien comprendre comment il d�termine l'index (c'est semble-t-il
>ind�pendant du nom
> "Although you can use any name for the index, it is good practice to use the table
>and column names as part of the index name...") et comment le forcer � l'utiliser. Ou
>alors il y a autre chose!
>
>
> G.
> --
> | UnixOnNous et Rejoignez le
> Gilbert ROBERT | "Groupe des Utilisateurs L�maniques de"
> ISSCO, University of Geneva | / / (_)____ __ __ _ __
> 40 bd pont d'arve | / / / // __ \ / / / /| |/_/
> CH-1211 GENEVA 4 | / /___ / // / / // /_/ /_> <
> Tel: +41/22/705 8686 | /_____//_//_/ /_//_____/ /_/\_\
> http://www.gilbert-robert.com | http://www.linux-gull.ch
> --
> http://www-internal.alphanet.ch/linux-leman/ avant de poser
> une question.
>
\\\___///
\\ - - //
( @ @ )
+-------------------oOOo-(_)-oOOo------------------------------+
| Cedric Bapst | Home: +41(0)21 807 2530 |
| Le Clos C | Work: +41(0)21 631 8150 |
| CH-1174 Montherod | Fax : +41(0)21 631 8480 |
+-------------------------+-Oooo-------------------------------+
oooO ( )
( ) ) /
\ ( (_/
\_)
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question.