【发布时间】:2010-11-27 12:11:41
【问题描述】:
我希望找到如何在 OracleDB 中获取结果集的 kb 大小。 我不是系统管理员,但经常运行返回超过 100k 行的查询,我需要找到一种方法来确定总 kb 大小。 谢谢你
【问题讨论】:
标签: sql oracle plsql oracle10g
我希望找到如何在 OracleDB 中获取结果集的 kb 大小。 我不是系统管理员,但经常运行返回超过 100k 行的查询,我需要找到一种方法来确定总 kb 大小。 谢谢你
【问题讨论】:
标签: sql oracle plsql oracle10g
在 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
使用 AUTOTRACE 需要 PLUSTRACE 角色,默认情况下不授予该角色。 Find out more.
【讨论】:
通常,您可以将列列表替换为 count(*) 以返回行数。
我不确定这对于具有许多连接等的非常复杂的查询的效果如何,但是对于更简单的查询,它应该没问题。替换:
select a,b,c from t where a > 7;
与
select count(*) from t where a > 7;
这将在您运行实际查询之前为您提供行数。请记住,您的计数查询和实际查询之间的数据可能会发生变化(希望不会太多)。了解数据属性将使您能够从行数中估算出千字节。
【讨论】: