Frage

Ich hoffe, dass ich die KB -Größe eines Ergebniss in OracledB erhalten kann. Ich bin kein Sysadmin, aber oft führen Sie Abfragen aus, die über 100.000 Zeilen zurückkehren, und ich müsste einen Weg finden, um festzustellen, wie die gesamte KB -Größe ist. Danke

War es hilfreich?

Lösung

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

Für die Verwendung von Autotrace ist die Plustrace -Rolle erforderlich, die standardmäßig nicht gewährt wird. Finde mehr heraus.

Andere Tipps

Im Allgemeinen würden Sie Ihre Spaltenliste durch a ersetzen count(*) Um die Zeile zu geben.

Ich bin mir nicht sicher, wie gut das bei wirklich komplizierten Anfragen mit vielen Anschlüssen und dergleichen funktionieren würde, aber für einfachere Fragen sollte es in Ordnung sein. Ersetzen:

select a,b,c from t where a > 7;

mit

select count(*) from t where a > 7;

Das gibt Ihnen die Zeilenzahl, bevor Sie die echte Abfrage ausführen. Denken Sie nur daran, dass sich die Daten zwischen Ihrer Zählung und einer echten Abfrage ändern können (hoffentlich nicht zu viel). Durch die Kenntnis der Dateneigenschaften können Sie Kilobyten von der Zeilenzahl annähern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top