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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top