지금 내가 알고 있는게 확실히 맞는건지 아닌건지 모르겠지만
정리를 해두자면
오라클의 경우
SGA 메모리의 BUFFER를 통해 쿼리가 수행됨.
따라서 BUFFER 사이즈가 작을 경우 성능이 나빠짐.
무튼 SGA의 메모리의 2% 미만의 용량을 가진 TABLE SIZE를 가진 TABLE의 경우 항상 메모리의 상주해서 작업 (즉 빠름)
하지만 그 이상의 사이즈를 갖는 테이블의 경우 DISK에서 BUFFER로 올린다음 쿼리 수행 후 다시 DISK로 내림
이 작업을 반복적으로 수행하기에 BUFFER에 항상 상주되어 있는 테이블에 비해 느려짐
하지만 무조건 이렇게 된다면 문제가 되기에 오라클에서는 동일한 작업이 이뤄지는 쿼리에 대해서는 COUNT를 수행
특정 COUNT 이상이 될 경우 BUFFER에 올려놓고 사용하게 됨.
이렇기에 처음에만 느리고 나중에 빨라진다고 느끼는 부분임.
아! 추가적으로
실행 계획 혹은 인덱스 재빌드는 오라클 내부에서 자동으로 수행된다고 함.
끝.!
'ORACLE' 카테고리의 다른 글
[Oracle] Listener가 실행이 안될 때! (0) | 2018.04.16 |
---|---|
[Oracle] 분당 트랜잭션 수 파악! (0) | 2017.11.06 |
[Oracle] DB 변경시 확인 사항 #1 - SESSION (0) | 2016.08.18 |
[Oracle] DB 변경시 확인 사항 #1 - MEMORY (0) | 2016.08.18 |
[Oracle] DB_Link 할경우 유저 연결(ORA-01017)이 안된다? (0) | 2016.06.03 |