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
About the author