DB2-버퍼 풀

이 장에서는 데이터베이스의 버퍼 풀을 소개합니다.

소개

버퍼 풀은 데이터베이스 관리자가 할당 한 기본 메모리 공간의 일부입니다. 버퍼 풀의 목적은 디스크에서 테이블 및 인덱스 데이터를 캐시하는 것입니다. 모든 데이터베이스에는 자체 버퍼 풀이 있습니다. 기본 버퍼 풀은 새 데이터베이스를 만들 때 만들어집니다. "IBMDEFAULTBP"라고합니다. 사용자 요구 사항에 따라 여러 버퍼 풀을 만들 수 있습니다. 버퍼 풀에서 데이터베이스 관리자는 테이블 행 데이터를 페이지로 배치합니다. 이 페이지는 데이터베이스가 종료되거나 공간이 새 데이터로 기록 될 때까지 버퍼 풀에 남아 있습니다. 데이터로 업데이트되었지만 디스크에 기록되지 않은 버퍼 풀의 페이지를 "더티"페이지라고합니다. 버퍼 풀의 업데이트 된 데이터 페이지가 디스크에 기록 된 후 버퍼 풀은 다른 데이터를 가져올 준비가됩니다.

테이블 스페이스와 버퍼 풀 간의 관계

각 테이블 스페이스는 데이터베이스의 특정 버퍼 풀과 연관됩니다. 하나의 테이블 스페이스는 하나의 버퍼 풀과 연관됩니다. 버퍼 풀과 테이블 스페이스의 크기는 동일해야합니다. 다중 버퍼 풀을 사용하면 데이터베이스에서 사용하는 메모리를 구성하여 전체 성능을 높일 수 있습니다.

버퍼 풀 크기

버퍼 풀 페이지의 크기는 "CREATE DATABASE"명령을 사용할 때 설정됩니다. 페이지 크기를 지정하지 않으면 기본 페이지 크기 인 4KB가 사용됩니다. 버퍼 풀이 생성되면 나중에 페이지 크기를 수정할 수 없습니다.

현재 데이터베이스 디렉토리에서 사용 가능한 버퍼 풀 나열

Syntax: [아래 구문은 데이터베이스에서 사용 가능한 모든 버퍼 풀을 보여줍니다.]

db2 select * from syscat.bufferpools

Example: [현재 데이터베이스에서 사용 가능한 버퍼 풀을 보려면]

db2 select * from syscat.bufferpools

Output:

BPNAME      BUFFERPOOLID DBPGNAME   NPAGES      PAGESIZE    ESTORE 
NUMBLOCKPAGES BLOCKSIZE   NGNAME
------------------------------------------------------------ 
IBMDEFAULTBP                                                                                                                
 1 -                                                                                                  
 -2        4096 N                  0           0 -     
 
 1 record(s) selected.

버퍼 풀 만들기

데이터베이스 서버용 새 버퍼 풀을 만들려면 "버퍼 풀 이름"과 "페이지 크기"라는 두 개의 매개 변수가 필요합니다. 다음 쿼리는 새 버퍼 풀을 생성하기 위해 실행됩니다.

구문 : [아래 구문에서 'bp_name'은 버퍼 풀 이름을 나타내고 'size'는 버퍼 풀에 대해 선언해야하는 페이지 크기를 나타냅니다 (4K, 8K, 16K, 32K)]

db2 create bufferpool <bp_name> pagesize <size>

Example: [이름이 "bpnew"이고 크기가 "8192"(8Kb) 인 새 버퍼 풀을 만들려면.]

db2 create bufferpool bpnew pagesize 8192

Output

DB20000I The SQL command completed successfully.

버퍼 풀 삭제

버퍼 풀을 삭제하기 전에 테이블 스페이스가 할당되었는지 확인해야합니다.

Syntax: [버퍼 풀을 삭제하려면]

drop bufferpool <bp_name>

Example: [버퍼 풀이라는 이름의 'bpnew'를 삭제하려면]

db2 drop bufferpool bpnew

Output

DB20000I The SQL command completed successfully.