Bestimmen Sie die Größe eines SQL -Ergebniss in KB
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
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.