Ich wollte die Gesamtsumme aus allen Tabellen und eine Liste der Tabellen mit ihren Zählungen. Ein bisschen wie ein Leistungsdiagramm, wo die meiste Zeit verbracht wurde
WITH results AS (
SELECT nspname AS schemaname,relname,reltuples
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE
nspname NOT IN ('pg_catalog', 'information_schema') AND
relkind='r'
GROUP BY schemaname, relname, reltuples
)
SELECT * FROM results
UNION
SELECT 'all' AS schemaname, 'all' AS relname, SUM(reltuples) AS "reltuples" FROM results
ORDER BY reltuples DESC
Sie können natürlich auch eine LIMIT
Klausel für die Ergebnisse in dieser Version zu verwenden, damit Sie die größte n
Straftäter sowie eine Gesamtzahl.
Dabei ist zu beachten, dass man es nach dem Massenimport eine Zeit lang ruhen lassen muss. Ich habe dies getestet, indem ich einfach 5000 Zeilen zu einer Datenbank über mehrere Tabellen mit echten Importdaten hinzugefügt habe. Es wurden 1800 Datensätze für etwa eine Minute angezeigt (wahrscheinlich ein konfigurierbares Fenster)
Dies basiert auf https://stackoverflow.com/a/2611745/1548557 Arbeit, also danke und Anerkennung für die Abfrage innerhalb des CTE