Determinare la dimensione di un set di risultati SQL in KB
Domanda
Spero di trovare come posso ottenere la dimensione kb di un set di risultati in OracleDB. Non sono un amministratore di sistema, ma spesso eseguo query che restituiscono oltre 100.000 righe e avrei bisogno di trovare un modo per determinare qual è la dimensione totale di KB. grazie
Soluzione
In SQL * Plus:
SET AUTOTRACE ON
SELECT *
FROM emp
WHERE rownum <= 100;
27 recursive calls
0 db block gets
19 consistent gets
4 physical reads
0 redo size
**11451 bytes sent via SQL*Net to client**
314 bytes received via SQL*Net from client
8 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
100 rows processed
Per utilizzare AUTOTRACE è necessario il ruolo PLUSTRACE, che non è concesso per impostazione predefinita. Scopri di più .
Altri suggerimenti
In genere, si dovrebbe sostituire l'elenco delle colonne con un count (*)
per restituire il conteggio delle righe.
Non sono sicuro di come funzionerebbe su query davvero complicate con molti join e simili, ma, per query più semplici, dovrebbe andare bene. Sostituire:
select a,b,c from t where a > 7;
con
select count(*) from t where a > 7;
Questo ti darà il conteggio delle righe prima di eseguire la vera query. Tieni presente che esiste una possibilità che i dati possano cambiare tra la query di conteggio e la query reale (si spera non troppo). La conoscenza delle proprietà dei dati ti consentirà di approssimare i kilobyte dal conteggio delle righe.