문제

oracledb에서 설정된 결과의 KB 크기를 얻을 수있는 방법을 찾기를 바라고 있습니다. 나는 sysadmin이 아니지만 종종 100k 이상의 행을 반환하는 쿼리를 실행하며 총 KB 크기가 무엇인지 결정하는 방법을 찾아야합니다. 감사합니다

도움이 되었습니까?

해결책

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 역할이 필요합니다. 더 찾아 봐.

다른 팁

일반적으로 열 목록을 count(*) 행 카운트를 반환합니다.

나는 그것이 많은 결합 등으로 실제로 복잡한 쿼리에서 얼마나 잘 작동할지 잘 모르겠지만, 더 간단한 쿼리의 경우 괜찮을 것입니다. 바꾸다:

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

~와 함께

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

실제 쿼리를 실행하기 전에 행 계산을 줄 것입니다. 데이터가 카운트 쿼리와 실제 쿼리간에 변경 될 가능성이 있음을 명심하십시오 (희망적으로는 그리 많지 않음). 데이터 속성에 대한 지식을 통해 행 카운트에서 킬로바이트를 근사화 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top