Pepe, 

Parece que el problema con el tiempo que demora la consulta no es la
cantidad de registros sino la operación SUM y ordenar el resultado, por eso
sugiero que si es algo que se consulta frecuentemente busques una
alternativa a esas operaciones, por ejemplo utilizando una vista o una tabla
secundaria donde vayas actualizando la suma de bytes por cliente.

 

From: [email protected] [mailto:[email protected]] On Behalf Of Marcelo
Abosch
Sent: Friday, March 01, 2013 9:59 AM
To: [email protected]
Subject: [puntonet] duda sobre consulta SQL y necesidad de subquery

 

No se entiende muy bien:

 

Me parece que deberías hacer esto:

 

SELECT  SUM(bytesrecvd) AS bytes, ClientUserName, from 

(select top 10000 bytesrecvd, ClientUserName from  webproxylog  order by
fecha desc) A

GROUP BY ClientUserName 

 

 

Si queres tener los primeros 100 clientes que tengan mayor cantidad de
BytesRecvd:

Deberías hacer algo asi como:

Select bytes, ClientUserName from

( SELECT  SUM(bytesrecvd) AS bytes, ClientUserName, from webproxylog  GROUP
BY ClientUserName ) A  order by 1 desc

 

 

 

From: [email protected] [mailto:[email protected]] On Behalf Of Pepe
Ballaga
Sent: Friday, March 01, 2013 8:54 AM
To: [email protected]
Subject: [puntonet] duda sobre consulta SQL y necesidad de subquery

 

Holaaa amigos necesito hacer la siguiente consulta muy sencilla pues la
tabla tiene millones de registros y se demora demasiado

 

SELECT  SUM(bytesrecvd) AS bytes, ClientUserName, from webproxylog  GROUP BY
ClientUserName 

pero solo quiero hacerselo a un conjunto utilizando subquery.
preferiblemente quisiera usar una subquery con un tope de 10000 registros
(algo asi como select top(10000)). Ojala me haya explicado bien. Saludos

 

PEPE

Responder a