Muchas gracias amigo guillotmarc, he estado probando con los select por separado en el ibplanalyzer y tengo problemas en los iguientes select:
Código SQL
[-]
select r.nro_recibo,cast(r.fecha as date),v.cantidad||'==>'||m.nombre_producto||'==>'||p.nombre, case r.porcentaje_cobro when 100 then v.costo else (r.porcentaje_cobro*v.costo)/100 end,r.costo_total,r.literal,r.nro_ambulatorio,r.usuario,r.tipo_paciente,r.nro_asegurado,r.nro_intern acion,r.factura,cast(r.fecha as time),r.monto_cobrar,r.porcentaje_cobro,v.nro,r.nro_factura
from recibo r
inner join venta_med v on v.nro_recibo=r.nro_recibo
inner join medicamento m on m.id_producto=v.id_medicamento
inner join presentacion_med p on m.id_presentacion=p.id_presentacion
where ((r.fecha between :f1 and :f2+1 and r.fecha<>:f2+1)and((r.cancelado=:valor)or(r.cancelado='M')))
ya tengo creado indices tanto por llaves primarias y foraneas y en el ibplananalizer en la pestaña de la grafica me muestra que las tres tablas estan indexadas pero en la pestaña PLAN analisys me muestra lo siguiente
PLAN JOIN (R INDEX (RECIBO_IDX1), V INDEX (VENTA_MED_IDX1), M INDEX (PK_MEDICAMENTO), P INDEX (PK_PRESENTACION_MED))
en el arbol que genera del JOIN en el detalle que genera del indice VENTA_MED_IDX1 en el campo selectivity me muestra el valor de 4.57, comentarles que VENTA_MED_IDX1 es un indice que he creado en la tabla venta_med sobre el campo nro_recibo, como puedo solucionarlo???
Comentarles que algo similar me pasa en el siguiente select:
Código SQL
[-]
select r.nro_recibo,cast(r.fecha as date),a.nombre_a, case r.porcentaje_cobro when 100 then e.costo else (r.porcentaje_cobro*e.costo)/100 end,r.costo_total,r.literal,r.nro_ambulatorio,r.usuario,r.tipo_paciente,r.nro_asegurado,r.nro_intern acion,r.factura,cast(r.fecha as time),r.monto_cobrar,r.porcentaje_cobro,e.nro,r.nro_factura
from recibo r
inner join registro_examenes_lab E on E.nro_recibo=r.nro_recibo
inner join analisis_clinico A on a.nombre_a=e.examen
where ((r.fecha between :f1 and :f2+1 and r.fecha<>:f2+1)and((r.cancelado=:valor)or(r.cancelado='M')))
Esta vez me muestra lo siguiente:
PLAN JOIN (R INDEX (RECIBO_IDX1), E INDEX (FK_REGISTRO_EXAMENES_LAB_2), A INDEX (PK_ANALISIS_CLINICO))
y el icono de exclamación me muestra sobre el indice FK_REGISTRO_EXAMENES_LAB_2 que es el indice sobre el campo nro_recibo de la tabla registro_examenes_lab
En los dos select la exclamacion esta sobre los indices creados sobre el campo nro_recibo, ya he creado nuevos indices sobre esos campos y el icono de exclamacion me muestra sobre los indices creados
Que es lo que tendria que cambiar ?? o porque en esos dos select en esos indices me muestra un valor mayor a 1 en el campo selectivity del ib plananalizer
Muchas gracias por sus comentarios y bueno solo decir que importante son los indices para agilizar consultas
Y disculpas por responder tardee