Supponiamo di voler tenere sotto controllo i file (dovremmo abituarci a chiamarle Tabelle, come il resto del mondo!) di un elenco di librerie di dati, di volerne vedere le dimensioni, il numero di record e il numero di record cancellati (calcolando una eventuale dimensione dell’oggetto dopo una eventuale reorganize (RGZPFM)).
Con un semplice query come questo possiamo avere l’elenco delle top 100 tabelle che “mangiano” più spazio di tre liberie indicate in una temporary table da mettere in Cross Join Lateral con la UDTF object_statistics e la systablestat:
SELECT *
FROM (
VALUES('FAQ400'),('QGPL'),('SAMPLEDB')
) t(LibraryToCheck)
cross join lateral
(select objlongschema, objname, objlongname, objtype, objattribute, objowner, objcreated, cast(objsize/1000000 as integer) as ObjSizeMB,
int(objsize/(NUMBER_ROWS + NUMBER_DELETED_ROWS)*NUMBER_ROWS/1000000) as AfterReorgize, b.last_used_timestamp, number_rows, number_deleted_rows, objtext FROM TABLE(QSYS2.OBJECT_STATISTICS(t.LibraryToCheck, '*ALL')) a
left join qsys2.systablestat b on a.objname=b.system_table_name and a.objlongschema=b.table_schema
)
order by objsizeMB desc
fetch first 100 rows only;
---
Roberto De Pedrini
Faq400.com Le funzioni di debug con Visual Studio Code sono disponibili da qualche tempo ma questa nuova versione 2.10.0 semplifica la…
A distanza di due anni e mezzo dal mio post Trasferire oggetti con ObjectConnect ed Enterprise Extender, sono finalmente riuscito…
Con un piccolo trucco anche una semplice istruzione SELECT può eseguire qualsiasi comando di sistema ! Vediamo come...
Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer
Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer
Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer