2017-05-10 10 views
4

postgresql에 새로운 기능이있어서 explain (버퍼, 분석) 명령을 이해하려고합니다. 쿼리가 있고 explain (버퍼, 분석)을 사용하여 실행합니다.postgresql의 설명 (버퍼, 분석)

처음 실행하면 성능이 두 번째보다 떨어집니다. 또한, '읽기'매개 변수를 '히트'옆에 두 번째 '읽기'가 존재하지 않는 동안 처음으로 얻을.

누군가 나를 이해할 수 있습니까?

답변

6

처음으로 페이지를 선택하면 페이지가 따뜻해집니다. RAM에 저장되면 캐시에로드됩니다. 다음 번 선택하면 속도가 빨라집니다 (RAM 속도가 빠름). 포스트 그레스 그들을 읽고, 그들이 따뜻한, 그래서 캐시 더 읽기 명중하지 왜냐하면 페이지가 캐시에없는

따라서 buffers 쇼 읽기, ...

업데이트 docs과 :

버퍼

버퍼 사용에 대한 정보를 포함합니다. 특히 개의 공유 블록 히트, 읽기, 더티 및 쓰여진 수, 로컬 블록의 히트, 읽기, 더티 및 쓰여진 수 및 임시 블록의 수를 읽고 쓰십시오. 히트 (hit)는 필요하다면 블록이 이미 캐시에 있기 때문에 읽기가 회피되었음을 의미합니다. 공유 블록 에는 일반 테이블 및 인덱스의 데이터가 포함됩니다. 로컬 블록은 임시 테이블과 인덱스의 데이터를 포함합니다 ( ). 임시 블록은 정렬, 해시, Materialize 계획 노드, 및 이와 유사한 경우에 사용되는 단기 작업 데이터를 포함합니다. 더럽혀진 블록의 수는이 쿼리로 변경된 이전에 수정되지 않은 블록의 수인 을 나타냅니다. 기록 된 블록 수는 쿼리 처리 중에이 백엔드가 캐시에서 제거한 이전에 더티 블록 수를 나타냅니다. 상위 노드에 표시된 블록 수 에는 모든 하위 노드에서 사용되는 블록 수가 포함됩니다. 텍스트 형식에서는 0이 아닌 값인 만 인쇄됩니다. 이 매개 변수는 ANALYZE도 사용하는 경우에만 사용할 수 있습니다. 기본값은 FALSE입니다.

놀랍게도 버퍼에 관한 내용이 많지 않습니다. here.