목록데이터베이스 (2)
Today I Learned
[집약] 집약, 해시, 정렬 - TEMP 탈락(GROUP BY)
GROUP BY와 관련한 성능으로 정렬과 해시입니다. 정렬과 해시는 모두 메모리는 많이 사용합니다. 충분한 해시용(또는 정렬용) 워킹 메모리가 확보되지 않으면 스왑이 발생합니다. 따라서 저장소 위의 파일이 사용되면서 굉장히 느려집니다. 이때 DBMS에서 사용되는 메모리가 워킹 메모리입니다. Oracle에서는 정렬 또는 해시를 위해 PGA라는 메모리 영역을 사용합니다. 이때 PGA 크기가 집약 대상(e.g. GROUP BY의 대상) 데이터양에 비해 부족하면, 일시 영역(저장소)를 사용해 부족한 만큼 채웁니다. 이것을 TEMP 탈락이라고 부르는 현상입니다. TEMP 탈락이 발생하면 메모리만으로 처리가 끝나는 경우와 비교해서 극단적으로 성능이 떨어집니다. 메모리와 저장소(일반적인 디스크)의 접근 속도 차이가 ..
데이터베이스
2022. 10. 28. 17:03
[Oracle] SQL 구문의 실행 시간을 검색하는 방법
DBMS_XPLAN.DISPLAY_CURSOR를 사용한 실행 계획 검색 set serveroutput off alter session set statistics_level=all; SELECT * FROM EMP; --EMP는 가상의 테이블임 SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(format=>'ALL ALLSTATS LAST' )); - 각각의 필드가 갖는 의미 E-Rows : 추정되는 조작 레코드 수 A-Rosw : 실제 조작 레코드 수 A-Time : 실제 실행 시간 - 권한이 없어 발생한 오류 User has no SELECT privilege on V$SESSION
데이터베이스
2022. 10. 25. 17:42