Re: Se puede obtener el total de registros de una tabla sin select count(*)?

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Silvio Quadri <silvioq(at)gmail(dot)com>
Cc: Julio Cesar Sánchez González <knowhow(at)sistemasyconectividad(dot)com(dot)mx>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Se puede obtener el total de registros de una tabla sin select count(*)?
Date: 2008-01-29 14:15:51
Message-ID: 20080129141551.GA8102@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Silvio Quadri escribió:

> select relname, reltuples from pg_class c, pg_namespace n
> where relname = 'nombre de tabla'
> and relnamespace = n.oid and nspname = any( current_schemas(false) );
>
> OJO: Creo que reltuples es la cantidad de registros estimados. No confíes
> 100% en él, ya que entiendo que lo usa para cuestiones estadísticas.

Yo iba a proponer algo parecido pero que sirve en más circunstancias:
pasarle un EXPLAIN a la consulta y luego extraer del nodo mas externo la
parte que dice "rows=". Creo que Tom Lane publicó una función en
plpgsql que hace eso, pero no la encuentro. No debería ser muy difícil
de hacer, creo.

Como Silvio dice, hay que usarlo con cuidado: es sólo para propósitos
estimativos.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Reynier Perez Mira 2008-01-29 14:51:47 RE: El sitio web en castellano esta en proceso
Previous Message Silvio Quadri 2008-01-29 13:47:04 Fwd: [OT] Sugerencia para los administradores de la lista