PosgreSQL – Obtener cantidad de registros por tabla

PorErik Guerrero V.

PosgreSQL – Obtener cantidad de registros por tabla

Llevar un registro de la cantidad de filas de. cada tabla puede resultar útil para la planificación de la capacidad y el presupuesto, aunque es sorprendentemente difícil obtener recuentos precisos.

Para comenzar a obtener nuestros recuentos de filas, necesitaremos una lista de nuestras tablas SQL. Podemos conseguirlo fácilmente con:

select table_schema, table_name
from information_schema.tables
where 
  table_schema not in ('pg_catalog', 'information_schema') 
  and table_type='BASE TABLE'

Queremos que nuestra función personalizada tome un nombre de tabla y devuelva el número de filas en la consulta. A continuación, se explica cómo escribir una función count_rows:

create or replace function 
count_rows(schema text, tablename text) returns integer
as
$body$
declare
  result integer;
  query varchar;
begin
  query := 'SELECT count(1) FROM ' || schema || '.' || tablename;
  execute query into result;
  return result;
end;
$body$
language plpgsql;

Podemos invocar esta función como cualquier otra función de postgres con count_rows (“usuarios”). Al agregar nuestra función count_rows a la consulta original, obtendremos recuentos de filas para cada tabla:

 

select 
  table_schema,
  table_name, 
  count_rows(table_schema, table_name)
from information_schema.tables
where 
  table_schema not in ('pg_catalog', 'information_schema') 
  and table_type='BASE TABLE'
order by 3 desc

 Listo!!!!

 

Facebook Comments

About the author

Erik Guerrero V. administrator

Mas de 10 años de experiencia como analista programador, tanto backend como frontend, muchos proyectos tanto intranet, extranets, redes sociales, publicitarios, comercio electrónicos, ERP, CRM, BI, SIst. de Gestion, Email Marketing, Sist. Financieros, Contables, también me desempeño como freelance en mis tiempos libres, como también me dedico a la investigación en cuanto a nuevas tecnologías.

Deja un comentario