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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top