Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
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 14-11-2014
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.419
Poder: 24
fjcg02 Va camino a la fama
hola,
es más eficiente hacer count(1) que count(*) a efectos de trabajo del motor de bbdd.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #2  
Antiguo 14-11-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por fjcg02 Ver Mensaje
hola,
es más eficiente hacer count(1) que count(*) a efectos de trabajo del motor de bbdd.
...
¡ Esa no la tenía registrada !

( Gracias por desasnarme )

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 14-11-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.702
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Siempre uso un campo clave, ejemplo: count(id)
Pero nunca había visto count(1) ¿qué hace exactamente?
Responder Con Cita
  #4  
Antiguo 14-11-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Siempre uso un campo clave, ejemplo: count(id)
Pero nunca había visto count(1) ¿qué hace exactamente?
Si, sería bueno saberlo... Mirando las estadísticas hay una marcada diferencia (sobre 17698 pacientes):
Código SQL [-]
SELECT COUNT(*) FROM PACIENTES
Código:
32934 fetches, 0 marks, 692 reads, 0 writes.
0 inserts, 0 updates, 0 deletes, 48 index, 15698 seq.
Delta memory: 21436 bytes.
Total execution time: 0.156s

Código SQL [-]
SELECT COUNT(1) FROM PACIENTES
Código:
32760 fetches, 0 marks, 0 reads, 0 writes.
0 inserts, 0 updates, 0 deletes, 0 index, 15698 seq.
Delta memory: 96 bytes.
Total execution time: 0.031s
Saludos

Edito: Obtuve el mismo resultado usando COUNT(0) (0.031s) y una diferencia menor a COUNT(*), usando COUNT(ID) (0.047s) .
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 14-11-2014 a las 22:45:24.
Responder Con Cita
  #5  
Antiguo 14-11-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.941
Poder: 28
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Explicado y con pros y contras:

http://stackoverflow.com/questions/2...hich-is-better
__________________
El malabarista.
Responder Con Cita
  #6  
Antiguo 15-11-2014
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 24
RONPABLO Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Siempre uso un campo clave, ejemplo: count(id)
Pero nunca había visto count(1) ¿qué hace exactamente?
pues en un query uno puede hacer algo como:
Código SQL [-]
Select 1 as numero_Constante, id, nombre, 'Casi' as NombreConstante from MiTabla where fecha between :f1 and :f2

Pues así como puedo poner como constante un numero, también puedo contar cuantas veces sale dicha constante o sumarla con un Sum(1)
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #7  
Antiguo 15-11-2014
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 24
RONPABLO Va por buen camino
Código SQL [-]
create procedure SpAlgo (alumno varchar(10)) returns (cantidad integer, RegistroActual integer,id Integer, Nombre varchar(100)) as 
begin     
   select count(1) from notas_alumnos where alumno = :alumno into :cantidad;
   RegistroActual = 0;
   for select nombre, id from notas_alumnos where alumno = :alumno   into :nombre, :id  do
   begin
      registroActual = registroActual + 1;
      suspend;
   end  
end

COn este procedimiento puedo en cualquier momento saber cuantos registros tengo o decir en que registro voy de todos los que tengo
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"

Última edición por RONPABLO fecha: 15-11-2014 a las 08:54:41.
Responder Con Cita
  #8  
Antiguo 15-11-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.702
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Entiendo, aunque no le encuentro utilidad
Responder Con Cita
  #9  
Antiguo 15-11-2014
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 24
RONPABLO Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Entiendo, aunque no le encuentro utilidad
no le encuentras utilidad a count(1) ?, pues la utilidad es que consume menos recursos comparado a un count(*), y el count(UnCampo) existe la posibilidad de que el campo sea null (aunque en la clave primaria no) y no sea contado
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
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
Cuantos registros devuelve una consulta kizé MySQL 1 25-10-2010 10:13:30
Saber cuantos registros tiene un GridView JuanErasmo .NET 1 02-01-2007 21:19:32
dbGrid como devuelve el numero de registros omarifr Conexión con bases de datos 3 15-07-2005 20:56:58
Saber cuantos registros origino la consulta JorgeBec SQL 1 12-11-2004 16:48:17
Select Max siempre devuelve valor FernanGil Conexión con bases de datos 3 06-10-2003 15:55:36


La franja horaria es GMT +2. Ahora son las 21:31:42.


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