Podrías expresar ese CROSS JOIN COMO INNER JOIN? FROM informacion_ies.evidencias evidencia0_ INNER JOIN informacion_ies.evidencias_concepto evidenciac1_
ON (evidencia0_.id_evidencia_concepto = evidenciac1_.id AND evidencia0_.id_tabla = $1 AND evidenciac1_.tabla = $2) Funcionalmente hacen lo mismo, pero déjame descartarlo Claro select evidencia0_.id as id5_, evidencia0_.descripcion_archivo as descripc2_5_, evidencia0_.documento as documento5_, evidencia0_.id_evidencia_concepto as id9_5_, evidencia0_.fecha_carga as fecha4_5_, evidencia0_.id_tabla as id5_5_, evidencia0_.id_informacion_ies as id10_5_, evidencia0_.nombre_archivo as nombre6_5_, evidencia0_.observaciones as observac7_5_, evidencia0_.usuario_modificacion as usuario8_5_ from informacion_ies.evidencias evidencia0_ cross join informacion_ies.evidencias_concepto evidenciac1_ where evidencia0_.id_evidencia_concepto=evidenciac1_.id and evidencia0_.id_tabla=$1 and evidenciac1_.tabla=$2 order by evidencia0_.id Salu2 2013/4/22 Martín Marqués <[email protected][1]> Podes mandar la consulta? El día 22 de abril de 2013 13:22, Fernando Paz <[email protected][2]> escribió: > Hola,>> Esta es la salida de explain analyze aunque no entiendo bien la diferencias>>> QUERY PLAN> -------------------------------------------------------------------------------------------------------------- -----------------------------------------------> Sort (cost=739.67..740.00 rows=131 width=144) (actual time=1.156..1.237> rows=171 loops=1)> Sort Key: evidencia0_.id> Sort Method: quicksort Memory: 49kB> -> Nested Loop (cost=0.00..735.06 rows=131 width=144) (actual> time=0.025..0.981 rows=171 loops=1)> -> Seq Scan on evidencias_concepto evidenciac1_ (cost=0.00..6.54> rows=96 width=8) (actual time=0.007..0.076 rows=96 loops=1)> Filter: ((tabla)::text = 'ies'::text)> -> Index Scan using ix_evidencias_con_tab on evidencias> evidencia0_ (cost=0.00..7.58 rows=1 width=144) (actual time=0.005..0.006> rows=2 loops=96)> Index Cond: ((id_evidencia_concepto = evidenciac1_.id) AND> (id_tabla = 1))>>> Gracias>>> 2013/4/22 Martín Marqués <[email protected][1]>>>>> El día 22 de abril de 2013 12:11, Fernando Paz <[email protected][2]>>> escribió:>> > Holas,>> >>> > De antemano gracias por ya ayuda.>> >>> > La cuestión es que tengo una tabla (evidencias) en donde un campo>> > almacena>> > un archivo de tipo documento (doc,odf,pdf,etc.)>> >>> > Esta ya a crecido bastante tiene unos 58000 registros que en gigas por>> > los>> > archivos se traduce en unos 30 GB>> >>> > se suele hacer una consulta como>> >>> > select * from evidencias>> > where>> > tipo = $1 and clase = $2>> >>> > Al hacer el explain toma correctamente el índice pero su costo esta ahi>> > por>> > los 800, pero ejecutarla se esta demorando más de 10 seg>>>> EXPLAIN ANALYZE además de "explicarte" lo que el planner piensa hacer>> ejecuta la consulta para darte tiempos reales. Que tiempos da explain>> analyze?>>>> > Porque?>> >>> > Sospecho que es porque tiene almacenamiento de archivos... en ese caso>> > que>> > parámetro debería optimizar para mejorar el tiempo?>>>> Cuantas filas, aproximadamente se seleccionan con ese filtro?>>>> -->> Martín Marqués>> select 'martin.marques' || '@' || 'gmail.com[3]'>> DBA, Programador, Administrador>> --Martín Marquésselect 'martin.marques' || '@' || '_gmail.com_'DBA, Programador, Administrador René Romero Benavides @iCodeiExist[4] @PgsqlMx[5] Postgresql Tips en español para la comunidad de México e Hispanoamérica. http://postgresql.org.mx[6] -------- [1] mailto:[email protected] [2] mailto:[email protected] [3] http://gmail.com [4] https://twitter.com/iCodeiExist [5] https://twitter.com/PgsqlMx [6] http://postgresql.org.mx
