[firebase-br] ¿Se puede mejorar esta consulta?

W O sistemas2000profesional em gmail.com
Seg Jun 24 05:30:33 -03 2013


Hola a todos

Necesito saber si hay al menos un cliente cuyo RUC sea '44444401' o cuyo
RUC sea '77777701' o cuyo RUC sea '88888801', así que escribí la consulta
de abajo:

SELECT
     (SELECT COUNT(*) FROM CLIENTES C WHERE C.CLI_CODSUC >= 0 AND
LEFT(C.CLI_RUCXXX, 8) = '44444401') AS N_CONSUMIDOR_FINAL,
     (SELECT COUNT(*) FROM CLIENTES C WHERE C.CLI_CODSUC >= 0 AND
LEFT(C.CLI_RUCXXX, 8) = '77777701') AS N_AGENTE_DIPLOMATICO,
     (SELECT COUNT(*) FROM CLIENTES C WHERE C.CLI_CODSUC >= 0 AND
LEFT(C.CLI_RUCXXX, 8) = '88888801') AS N_CLIENTE_EXTERIOR
  FROM
     VENTASCAB V
  WHERE
     V.VTC_CODSUC >= 0;

En cada caso, usé SELECT COUNT(*) para saber si hay clientes con ese RUC,
pero realmente no necesito conocer la cantidad total sino solamente si hay
al menos un cliente que tiene ese RUC.

En realidad la tabla no es muy grande, tiene solamente unos 10.000
registros así que obtener la información es rápido pero quería saber si se
puede mejorar la consulta para no usar SELECT COUNT(*)

De la manera en que está, si N_CONSUMIDOR_FINAL es mayor que 0 yo sé que
hay al menos un consumidor final. Pero solamente necesito saber si hay un
consumidor final o no, no necesito saber cuantos son, así que recorrer la
tabla de CLIENTES tres veces me parece que es una pérdida de tiempo.

¿Se puede mejorar esta consulta para que sea más rápida?

Saludos.

Walter.



Mais detalhes sobre a lista de discussão lista