以KB为单位确定SQL结果集的大小

时间:2009-09-11 13:31:24

标签: sql oracle plsql oracle10g

我希望找到如何在OracleDB中获取结果集的kb大小。 我不是一个系统管理员,但经常运行返回超过10万行的查询,我需要找到一种方法来确定总的kb大小。 谢谢

2 个答案:

答案 0 :(得分:11)

在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

答案 1 :(得分:0)

通常,您可以使用count(*)替换列列表以返回行计数。

我不确定这对于具有许多连接的真正复杂的查询有多好,但是,对于更简单的查询,它应该没问题。替换:

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

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

这将在运行实际查询之前为您提供行计数。请记住,您的计数查询和实际查询之间的数据可能会发生变化(希望不会太多)。了解数据属性将允许您从行数中近似千字节。