Buenos dias, nuevamente estoy en la actualizacion del este blog hoy voy a tratar un tema de invetario de objetos tanto en el tamaño que ocupan, como en el numero de registro en las diferenetes bases de datos.
Esto ayuda mucho cuando se realiza procesos de migracion o ETLs.
Por ejemplo con el siguiente script se puede calcular el numero de registros de las tablas de una base de datos en SQL SERVER:
SELECT
nspname AS schemaname,relname,reltuples::integer,pg_size_pretty((relpages*8)::bigint*1024) AS "Tamaño Objeto"
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'
ORDER BY reltuples DESC;
En MySql es asi:
SELECT `table_schema` AS `Schema`, `table_name` AS `Table`, `engine` AS `Engine`, `table_rows` AS `Rows`, ROUND(((data_length + index_length) / 1024 / 1024), 3) `Size`
FROM information_schema.TABLES WHERE table_schema NOT IN ('information_schema', 'mysql') ORDER BY (`Size`) DESC;
Esto ayuda mucho cuando se realiza procesos de migracion o ETLs.
Por ejemplo con el siguiente script se puede calcular el numero de registros de las tablas de una base de datos en SQL SERVER:
select
sysobjects.name
,
sum(case
when sysindexes.indid<2
then rows
else
0 end)
as rows
,
sum(case
when sysindexes.indid
in (0,1)
then sysindexes.dpages
when
sysindexes.indid=255
then sysindexes.used
else
0 end)
* 8 as
Data
,
(sum(case
when sysindexes.indid
in (0,1,255)
then sysindexes.used
else
0 end)
-
sum(case
when sysindexes.indid
in (0,1)
then sysindexes.dpages
when
sysindexes.indid=255
then sysindexes.used
else
0 end))*8
as index_size
,
(sum(case
when sysindexes.indid
in (0,1,255)
then
sysindexes.reserved-sysindexes.used
else
0 end)*8)
as unused,xtype
from
sysobjects
join
sysindexes
on
sysobjects.id=sysindexes.id
where xtype='U'
group
by sysobjects.name,xtype
order
by 2 desc
En Postgresql se haría asi:
SELECT
nspname AS schemaname,relname,reltuples::integer,pg_size_pretty((relpages*8)::bigint*1024) AS "Tamaño Objeto"
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'
ORDER BY reltuples DESC;
En MySql es asi:
SELECT `table_schema` AS `Schema`, `table_name` AS `Table`, `engine` AS `Engine`, `table_rows` AS `Rows`, ROUND(((data_length + index_length) / 1024 / 1024), 3) `Size`
FROM information_schema.TABLES WHERE table_schema NOT IN ('information_schema', 'mysql') ORDER BY (`Size`) DESC;
No hay comentarios:
Publicar un comentario