Buenos dias: 2015-10-22 22:44 GMT+02:00 Igniris Valdivia <ivaldi...@xetid.cu>: > tengo un indice btree que contiene dos campos digamos id1 e id2 pues se debe > garantizar la unicidad de la combinacion de estos campos > ahora en la consulta donde la uso se usan los operadores igual e IN como por > ejemplo: > > id1=id3 AND id2 IN (1,2,3) > > y como el indice es compuesto la busqueda del IN la hace secuencial > que pudiera hacer para arreglar eso sin tener que crear un nuevo indice solo > para el capo id2 pues considero que esto ralentizaria aun mas la consulta en > lugar de optimizarla
Como ya te han dicho, un explain analyze ayudaria. Añadire que ademas la definicion real de las tablas/indices es necesaria, el optimizador es un bicho complicado y diferencias pequeñas en las definciones pueden dar grandes diferencias en los resultados. ¿ Cuando dices que la busqueda la hace secuencial a que te refieres exactamente ? ¿ Secuencial en el resultado de buscar id1, en toda la tabla ? Dicho esto, en general un indice por (id1, id2) te vale para buscar por id1 o por ambos, pero no por id2. En tu caso puede que el opitmizador no llegue a entender todo el query, y a veces puedes mejorarlo pidiendo (id1=id2) and (id2=1 or id2=2 or id2=3), todo es cuestion de probar. Francisco Olarte. - 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