Ok, mira, las tablas son de la siguiente estructura:
Table
LLEGADA
Column name Type Nulls
cve_llegada serial no
cve_paciente integer yes
cve_unidad integer yes
cve_cama integer yes
cve_examenes integer yes
cve_tpo_llegada integer yes
cve_doc integer yes
edad integer yes
fecha_recep date yes
hora_recep datetime hour to second yes
motivo_llegada char(2000) yes
ri char(2000) yes
folio varchar(255) yes
medico_legal smallint yes
conciente smallint yes
Table
CUADERNO_ANOTACIONES
Column name Type Nulls
cve_nota_atencion integer no
cve_ingreso_llegada integer no
cve_seccion integer no
cve_egreso integer no
fecha_salida date yes
hora_salida datetime hour to second yes
Ademas de 16 campos de tipo INT y CHAR, los cuales no importan tanto.
Hay muchos datos (si no es que todos...
) que no me sirven ya que solo me interesa el campo cve_nota_atencion de cuaderno_anotaciones ...
Algunos registros de LLEGADA son:
---- --- --- ---- ---- --- ---- ---- ---------- ------------ ------- ------- ------- ------------ --------- -----------
30 29 1 36 44 3 5 55 18/11/2002 06:50:45 PM (null) (null) (null) (null) (null) (null)
31 30 1 16 45 2 10 3 18/11/2002 07:54:45 PM (null) (null) (null) (null) (null) (null)
32 31 1 17 46 2 10 1 18/11/2002 08:03:49 PM (null) (null) (null) (null) (null) (null)
Y en total en esta tabla hay 30,000 registros.
En CUADERNO_ANOTACIONES tengo registros como estos:
---- ---- ---- ---- ------------ ------------ ------- ------- ------- ------- ------- ------- ------- ------- -------- --- -------- -- --- ------------------------ -------
21 22 3 2 31/12/2002 07:13:50 PM (null) (null) (null) (null) (null) (null) (null) (null) (null) 0 (null) 0 4 1-FULANO PEREZ (null)
31 37 3 2 12/12/2002 11:40:46 AM (null) (null) (null) (null) (null) (null) (null) (null) (null) 0 (null) 0 4 3-SULTANO MELEZ (null)
40 51 3 2 31/12/2002 07:13:50 PM (null) (null) (null) (null) (null) (null) (null) (null) (null) 0 (null) 0 4 68-PERENGANO MARQUEZ (null)
49 61 3 2 31/12/2002 07:13:50 PM (null) (null) (null) (null) (null) (null) (null) (null) (null) 0 (null) 0 3 96-ESQUIVEL DE POR ALLA (null)
Y aquí tengo 44,000 registros...
Ahora ... si yo busco:
SELECT COUNT(a.cve_atencion)
FROM llegada a INNER JOIN cuaderno_anotaciones b ON a.cve_atencion=b.cve_nota_atencion
WHERE a.cve_unidad=1
and b.cve_seccion=3
AND MONTH(a.fecha_recep)=5
AND YEAR(a.fecha_recep)=2009
Tengo este resultado:
(count)
----------
4
1 record(s) selected [Fetch MetaData: 16/ms] [Fetch Data: 0/ms]
[Executed: 12/02/10 02:48:34 PM CST ] [Execution: 3062/ms]
Ahora, se que no es mucho comparado con los tiempos que tu me has mostrado ... pero el problema viene aqui: tengo que hacer 12 consultas de este tipo (SELECT COUNT) para 1300 unidades, y algunas de esas consultas se realizan con 5 o 6 tablas ....
Mas que nada quiero saber si hay alguna remota posibilidad de hacer esto lo mas rapido posible
...