Excerpts from Sergio Valdes Hurtado's message of jue jun 21 17:33:29 -0400 2012: > El 21 de junio de 2012 17:06, Alejandro Carrillo <faster...@yahoo.es>escribió: > > > 1) Crea un indice por cada campo que vayas a filtrar con frecuencia: > > rbd,reg_cod,ano_pago, > > ind_reli,rut_sost ; es decir no crees indices compuestos ya que estos > > exigen que la consulta se haga por todos los campos. > > > En realidad las tres consultas son ídenticas, sólo cambian en el where , > ya que una es rbd in (..), la otra es rut_sost in(..) y la última reg_cod > in (..). La primera trae pocos datos ya que normalmente se pregunta por uno > o dos rbd, la segunta trae mas datos, ya que un rut_sost puede tener varios > rbd y la última es la que mas datos trae, ya que un reg_cod tiene muchos > rut_sost. > ¿Debo crear índices distintos para cada una de las consultas?
No. Mientras menos índices, mejor, porque los INSERT y UPDATE son más lentos mientras más índices hay. > ¿Deben ser índividuales o compuestos? Eso depende. Lo que dice Alejandro, más arriba, no es cierto: si tienes índices en los campos (a,b,c) pueden usarse para atender consultas con WHERE a, b. Así que la decisión de si usar individuales o compuestos no depende de otros factores. Yo pienso que te puede servir un índice así create index fff on tabla (rbd) where ind_reli in ('S', 'N') sobre todo si hay muchos otros casos en ind_reli. -- Álvaro Herrera <alvhe...@alvh.no-ip.org> - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda