Re: Inquietud sobre Count()

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Gregorio Diaz <gregorio_diaz(at)yahoo(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Inquietud sobre Count()
Date: 2006-01-17 15:42:29
Message-ID: c2d9e70e0601170742r73005cd2hc510423abcac3d4a@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 1/17/06, Gregorio Diaz <gregorio_diaz(at)yahoo(dot)com> wrote:
> Hola Amigos de lista
>
> Tengo una tabla cualquiera con 400.000 registros de
> prueba(simulados, cuando ejecuto esto:
>
> Select Count (*) From tabla
> o
> Select Count(campo_llave_primaria) From tabla
>
> Para determinar el numero de registros en la tabla.
>
> Se tarda mucho tiempo (cerca de 20 segundos) para
> darme la respuesta.
>
>
> Existe algo mejor para determinar el numnero de
> registros en
> una tabla ?
>
> Porque Count no usa los indices o algo asi ?
>
> - Postgresql, version 8.1 y 8.1.1
>
> - Pruebas hechas desde pgadmin 1.4.1 y desde
> aplicativo hecho con 4D.
>
> Un saludo
>
> Gregorio Diaz G.
> Bogota, Colombia
>
>

Por que tiene que contar los registros...
Imagina estas dos transacciones:

Transaccion 1

BEGIN;
DELETE FROM tabla1;

Mientras esto aun se esta ejecutando otro usuario ejecuta:
Transaccion 2

BEGIN;
SELECT * FROM tabla1;

Debido a que la transaccion 1 aun no ha hecho commit los registros aun
existen para el resto del mundo y la transaccion2 debe poder verlos...
para lograr eso se usa el sistema MVCC que trabaja con diferentes
versiones de una tupla para cada transaccion que la este
modificando...

asi que a la vez (dependiendo de la transaccion que consulte) una
tabla puede estar vacia o tener 10 registros o 100 registros... por
eso el count tiene que contar uno por uno los registrosy verificar que
para esa transaccion el registro deberia ser visible...

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2006-01-17 15:47:46 Re: Inquietud sobre Count()
Previous Message Gregorio Diaz 2006-01-17 15:31:44 Inquietud sobre Count()