Determine o tamanho de um resultado de SQL em KB
Pergunta
Espero encontrar como posso obter o tamanho do KB de um resultado no Oracledb. Eu não sou um sysadmin, mas geralmente executa consultas que retornam mais de 100k linhas e eu precisaria encontrar uma maneira de determinar qual é o tamanho total do KB. obrigada
Solução
Em 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
Usar o AutoTrace requer a função da Plustrace, que não é concedida por padrão. Descubra mais.
Outras dicas
Geralmente, você substituiria sua lista de colunas por um count(*)
para devolver a contagem de linhas.
Não tenho certeza de quão bem isso funcionaria em consultas realmente complicadas com muitas junções e coisas assim, mas, para consultas mais simples, tudo deve ficar bem. Substituir:
select a,b,c from t where a > 7;
com
select count(*) from t where a > 7;
Isso lhe dará a contagem de fileiras antes de executar a consulta real. Lembre -se de que há uma chance de que os dados possam mudar entre sua consulta e consulta real (espero não muito). O conhecimento das propriedades dos dados permitirá que você se aproxime de Kilobytes da contagem de linhas.