Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-03-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.676
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Tienes razón, en parte, porque si el servidor es linux y tienes más de una cpu, cuando lanzas la consulta ocupa una de las cpu, pero las demás siguen libres para seguir antendiendo a los restantes usuarios.

He hecho una prueba con una pequeñita, poco más 500 Mb. y efectivamente el primer select lo recorre entero "natural", aunque de todas formas, el tiempo requerido ha sido 1 segundo.

Cita:
Prepare time: 00:00:00.
Field #01: .CLIENTE Alias:CLIENTE Type:INTEGER
Field #02: .TOTAL Alias:TOTAL Type: DOUBLE PRECISION
PLAN (TBCABECERASFACTURASVENTAS NATURAL)
PLAN (TBCABECERASFACTURASVENTAS ORDER INDCABFACVEN_CLIENTECODIGO)


Executing...
Done.
317488 fetches, 0 marks, 0 reads, 0 writes.
0 inserts, 0 updates, 0 deletes, 62675 index, 62631 seq.
Delta memory: 1184 bytes.
Execute time: 00:00:01.
Script execution finished.
Con otra tabla que tiene más registros (1279329), 2 segundos:
Cita:
Prepare time: 00:00:00.
Field #01: .CODIGOPEDIDO Alias:CODIGOPEDIDO Type:INTEGER
Field #02: .PRECIO Alias:PRECIO Type: DOUBLE PRECISION
PLAN (TBLINEASALBARANESVENTAS NATURAL)
PLAN (TBLINEASALBARANESVENTAS ORDER RDB$FOREIGN3)


Executing...
Done.
1279329 fetches, 0 marks, 10697 reads, 0 writes.
0 inserts, 0 updates, 0 deletes, 253736 index, 253720 seq.
Delta memory: 1192 bytes.
Execute time: 00:00:02.
Script execution finished.
La prueba la he hecho en mi ordenador personal, ubuntu 8.04 con firebird 2.1 y un AMD athlon 64 x2 dual 4600 con 2 Gb

Última edición por Casimiro Noteví fecha: 26-03-2010 a las 22:37:54.
Responder Con Cita
  #2  
Antiguo 26-03-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Arrow

Solo comentar que la consulta correcta debería ser con una Union All ya que en realidad segun el requerimiento de Jucho69 es que por cada cliente salga cada importe efectuado más (+) la suma de todos los importe, lo cual significa que la cantidad de registro(tuplas)devueltas en la consulta general deben ser :
Cita:
Total registros=Cantidad de registro de la primera sub_consulta + Cantidad de registro de la segunda sub_consulta
Quedando la consulta SQL así:
Código SQL [-]
(Select Cliente, Importe From Tabla)   #<-Primera sub_consulta
Union All
(Select Cliente, sum(Importe) as Importe From Tabla Group By Cliente)    #<-Segunda sub_consulta
Order By Cliente,Importe
Quizás los parentesis estan demás pero creo que es mejor ponerlo para una mejor comprensión de lo que se está haciendo..
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 29-03-2010 a las 20:54:37.
Responder Con Cita
  #3  
Antiguo 27-03-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.676
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
De esa forma ha sido más rápido incluso, de 2 segundos a 1 seg.
Cita:
Prepare time: 00:00:00.
Field #01: .CODIGOPEDIDO Alias:CODIGOPEDIDO Type:INTEGER
Field #02: .PRECIO Alias:PRECIO Type: DOUBLE PRECISION
PLAN (TBLINEASALBARANESVENTAS NATURAL)
PLAN (TBLINEASALBARANESVENTAS ORDER RDB$FOREIGN3)


Executing...
Done.
1279329 fetches, 0 marks, 10697 reads, 0 writes.
0 inserts, 0 updates, 0 deletes, 253736 index, 253720 seq.
Delta memory: 1192 bytes.
Execute time: 00:00:01.
Script execution finished.
Responder Con Cita
  #4  
Antiguo 29-03-2010
Jucho69 Jucho69 is offline
Miembro
 
Registrado: ene 2007
Ubicación: Ciudad Habana, Cuba
Posts: 118
Poder: 20
Jucho69 Va por buen camino
Smile

Hola

Gracias a todos por la ayuda, muy atento rgstuamigo, ya creo que contigo habia visto algo parecido, con Union All se pueden enlazar varias consultas previas incluso desde la propia base de datos.

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Subtotales de Excel adfa76 Servers 1 11-06-2007 17:05:24
subtotales en un grid federicorl OOP 4 10-12-2006 20:34:32
Subtotales al comienzo yusnerqui Varios 6 08-06-2006 16:02:20
Subtotales en Excel tutuk Servers 4 04-06-2005 00:56:58
Subtotales en QuickReport raugadel Impresión 3 12-05-2004 16:13:49


La franja horaria es GMT +2. Ahora son las 20:59:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi