by 열심열심 [2018.01.03 08:31:53]
sql 쿼리 수행결과를 빠르게 반환하기 위해 최근 수행된 쿼리 데이터베이스 버퍼 캐시에 저장되는 것으로 알고 있습니다.
그러나 단순 where절 같은 경우 첫 수행결과와 2번째 결과 속도차이가 명확히 나지만
통계정보 같은경우 몇번을 수행해도 똑같은 수행시간 값이 나옵니다.
11g에 AMM이용해서 SGA영역을 확장하면 DB속도가 전반적으로 향상될 것이라고 생각했는데
잘못된 생각인가요?
쿼리 결과가 올라오는게 아니라 테이블 데이터(블럭 단위)가 올라옵니다. 즉 데이터를 디스크에서 읽느냐? 메모리에서 읽느냐 차이죠. 데이터 가공은 읽은 데이터를 바탕으로 다시 수행 하겠죠.
데이터 가공을 메모리에서 한단 말이죠? 만약에 디스크에서 데이터버퍼캐시에 올려서 가공을 한다면
시간이 더 소요 된다는 말이겠네요. (테이블 데이터가 블록 단위로 올라온다면 한테이블이 매우 크다면 그 테이블도 모두 올라오나요?)
결국 데이터버퍼캐시영역이 넓으면 많은 테이블데이터가 올라와 있어서 쿼리 수행속도는 전반적으로 빨라지는게 맞겠네요