Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.2.1 |  CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.0 |  CUBRID 8.4.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 

기타 파라미터

다음은 기타 파라미터 정보로 각 파라미터의 타입과 설정 가능한 값의 범위는 다음과 같다.

파라미터 이름

타입

기본값

최소값

최대값

service

string

 

 

 

server

string

 

 

 

index_scan_in_oid_order

bool

no

 

 

single_byte_compare

bool

no

 

 

insert_execution_mode

int

1

1

7

java_stored_procedure

bool

no

 

 

pthread_scope_process

bool

yes

 

 

auto_restart_server

bool

yes

 

 

index_unfill_factor

float

0.05

0

0.5

use_orderby_sort_limit

bool

yes

 

 

session_state_timeout

int

21600(6시간)

60(1분)

31536000(1년)

multi_range_optimization_limit

int

100

0

100

access_ip_control

bool

no

 

 

access_ip_control_file

string

 

 

 

service

service는 CUBRID 서비스 시작 시 자동으로 시작하는 프로세스를 등록하는 파라미터로 server, broker, manager, heartbeat의 네 종류 프로세스가 있다. 일반적으로 service=server,broker,manager와 같이 세 종류 프로세스를 등록한다.

  • 파라미터 값으로 server가 설정되면 @server 파라미터에서 지정한 데이터베이스 프로세스를 시작한다.
  • 파라미터 값으로 broker가 설정되면 브로커 프로세스를 시작한다.
  • 파라미터 값으로 manager가 설정되면 매니저 프로세스를 시작한다.
  • 파라미터 값으로 heartbeat가 설정되면 HA 관련 프로세스를 시작한다.
server

server는 CUBRID 서비스 시작 시 자동으로 시작하는 데이터베이스 서버 프로세스를 등록하는 파라미터이다.

index_scan_in_oid_order

index_scan_in_oid_order는 인덱스를 스캔한 후 검색 결과 데이터를 가져오는 순서를 OID 순으로 지정하기 위한 파라미터이다. 기본값인 no로 설정하면 데이터 순서대로 결과를 가져오고, yes로 설정하면 OID 순서대로 결과를 가져온다.

single_byte_compare

single_byte_compare은 문자열 비교(string compare)를 1바이트 단위로 수행하기 위한 파라미터이다. 기본값인 no로 설정하면 2바이트 단위로 문자열 비교를 수행한다. yes로 설정하면 1바이트 단위로 문자열 비교를 수행하므로 유니코드(UTF-8) 환경에서 저장된 데이터에 대해 정상적으로 문자열 비교/검색을 수행할 수 있다.

insert_execution_mode

insert_execution_modeINSERT가 서버 측에서 바로 수행되도록 하는 파라미터로서, 최소값은 1, 최대값은 31이다. 일반적으로 질의는 클라이언트에서 수행되고, 커밋 후에 서버에 반영된다. 그러나 insert_execution_mode 파라미터를 설정하면, 설정된 실행 모드에 해당하는 INSERT 문은 서버 측에서 바로 수행되고, 나머지 실행 모드에 해당하는 INSERT 문은 클라이언트에서 수행된다. 이는 INSERT한 데이터의 더티 읽기(dirty read)가 요구되는 환경 또는 클라이언트 메모리 용량이 제한적인 환경에서 서버 측 INSERT 문을 수행하기 위해 설정할 수 있다.

지원되는 INSERT 문의 실행 모드는 5가지이며, 각 실행 모드에 대응하는 정수 값의 조합을 통해 파라미터를 설정할 수 있다.

  • INSERT_SELECT : INSERT 문에서 SELECT 문을 이용하는 경우이며, 정수값 1에 대응된다.
  • INSERT INTO code2(s_name, f_name) SELECT s_name, f_name from code;
  • INSERT_VALUES : 보통 사용하는 INSERT 문에 해당하며, 정수값 2에 대응된다.
  • INSERT INTO code2(s_name, f_name) VALUES ('S', 'Silver');
  • INSERT_DEFAULT : 기본값이 정의된 컬럼을 포함하는 테이블에 대한 INSERT 문에서 해당 컬럼의 값을 별도로 명시하지 않는 경우이며, 정수값 4에 대응된다.
  • CREATE TABLE code2(s_name char(1) DEFAULT '_', f_name varchar(40));
  • INSERT INTO code2(f_name) DEFAULT VALUES;
  • INSERT_REPLACE : REPLACE 문을 수행하는 경우이며, 정수값 8에 해당한다.
  • CREATE TABLE code2(s_name char(1) NOT NULL UNIQUE, f_name varchar(40));
  • REPLACE INTO code2 VALUES ('S', 'Silver');
  • INSERT_ON_DUP_KEY_UPDATE : INSERT 문에서 ON DUPLICATE KEY UPDATE 절을 명시하는 경우이며, 정수값 16에 해당한다.
  • CREATE TABLE code2(s_name char(1) NOT NULL UNIQUE, f_name varchar(40));
  • INSERT INTO code2 VALUES ('S', 'Silver') ON DUPLICATE KEY UPDATE f_name='Silver';

위의 각 실행 모드에 대응되는 정수 값의 합계를 파라미터 값으로 설정하여, 서버 측에서 바로 수행될 INSERT 문의 종류를 지정할 수 있다.

  • 예 1) INSERT_SELECTINSERT_VALUES를 서버 측에서 실행하고자 하는 경우, insert_execution_mode=3으로 설정한다. (1 + 2 = 3)
  • 예 2) INSERT_SELECT, INSERT_DEFAULT, INSERT_REPLACE, INSERT_ON_DUP_KEY_UPDATE를 서버 측에서 실행하고자 하는 경우, insert_execution_mode=29로 설정한다. (1 + 4 + 8 + 16 =  29)
java_stored_procedure

java_stored_procedure는 Java 가상 머신(Java Virtual Machine, JVM)을 실행하여 Java 저장 프로시저(Java stored procedure)를 사용하게 하기 위한 파라미터이다. 기본값인 no로 설정하며 JVM이 실행되지 않고, yes로 설정하면 JVM이 실행되어 Java 저장 프로시저(Java stored procedure)를 사용할 수 있다. 따라서, Java 저장 프로시저를 사용할 계획이 있는 경우에는 파라미터를 yes로 설정해야 한다.

pthread_scope_process

pthread_scope_process는 스레드의 경쟁 범위를 설정하는 파라미터로 AIX 시스템에서만 적용된다. no로 설정하면 경쟁 범위가 PTHREAD_SCOPE_SYSTEM이 되고, yes로 설정하면 PTHREAD_SCOPE_PROCESS가 된다. 기본값은 yes이다.

auto_restart_server

auto_restart_server는 데이터베이스 서버 프로세스에 심각한 오류가 발생해서 프로세스가 중단될 경우에 자동으로 재시작할 것인가를 지정하는 파라미터이다. auto_restart_server를 yes로 설정하면 서버 프로세스는 정상적인 종료 절차(CUBRID 서버의 STOP 명령)가 아닌 잘못 중단된 경우에 자동으로 재시작한다.

index_unfill_factor

최초 인덱스 생성 후 INSERTUPDATE를 실행할 때 인덱스 페이지가 꽉 차서 여유 공간이 없으면 인덱스 페이지 노드의 분할(split)이 발생하게 되는데, 이는 오퍼레이션 시간을 증가시켜 성능에 영향을 미친다. index_unfill_factor는 인덱스를 생성할 때 각 인덱스 페이지 노드의 여유 공간을 확보하는 비율을 지정하는 파라미터이다. index_unfill_factor 설정값은 인덱스를 처음 생성할 때만 적용되며, 페이지에 지정된 빈 공간의 비율을 동적으로 유지하지 않는다. 값의 범위는 0부터 0.5까지이고 기본값은 0.05이다.

인덱스를 생성할 때 인덱스의 페이지 노드에 여유 공간이 없이(index_unfill_factor=0) 생성한다면, 추가로 삽입할 때마다 매번 인덱스 페이지 노드의 분할이 발생하여 성능에 영향을 끼치게 된다.

index_unfill_factor 값이 크면 인덱스 생성 시 노드 여유 공간을 많이 확보한다. 따라서 최초 인덱스 생성 후 노드 여유 공간이 꽉 찰 때까지 상대적으로 긴 시간 동안 인덱스 노드의 분할이 발생하지 않으므로, 상대적으로 성능이 나을 수 있다.

이 값이 작으면 인덱스 생성 시 노드 여유 공간이 작기 때문에, 인덱스 노드의 여유 공간이 금방 꽉 차게 될 가능성이 높으므로, 상대적으로 INSERTUPDATE에 의한 인덱스 노드 분할의 발생 가능성이 높다.

use_orderby_sort_limit

use_orderby_sort_limitORDER BY … LIMIT row_count 절을 포함하는 구문에서 질의의 정렬 및 합병(sort and merge) 과정의 중간 결과를 row_count만큼만 유지할 것인지를 지정하는 파라미터이다. yes이면 중간 정렬 결과를 row_count만큼만 유지하기 때문에 불필요한 비교 및 합병 과정을 줄일 수 있다. 기본값은 yes이다.

session_state_timeout

session_state_timeout은 CUBRID 세션 데이터가 유지되는 시간을 정의하는 시스템 파라미터이다. 세션 데이터는 드라이버가 연결을 종료하거나 세션 기간이 만료될(expired) 때 삭제되며, 세션 기간은 클라이언트가 session_state_timeout에 의해 지정한 시간 동안 요청이 없으면 만료된다.

CUBRID 세션 데이터에 해당하는 것은 SET으로 정의된 사용자 변수, PREPARE 문, 가장 마지막에 삽입한 ID(LAST_INSERT_ID), 가장 마지막에 실행한 문장에 영향받은 레코드의 개수(ROW_COUNT)이다. SET으로 정의된 사용자 변수와 PREPARE 문은 세션 기간이 만료되기 전에 DROP/DEALLOCATE 문을 수행하여 삭제할 수 있다.

기본값은 21600(6시간)이고, 단위는 초이다.

multi_range_optimization_limit

multi_range_optimization_limit은 다중 범위(col IN (?, ?, …,?))의 조건을 가지며 인덱스 사용이 가능한 질의에서, LIMIT 절이 지정하는 행의 개수가 이 파라미터가 지정하는 숫자 이내이면 인덱스 정렬 방식에 대한 최적화를 수행한다. 기본값은 100이다.

예를 들어, 이 파라미터의 값이 50일 때 LIMIT 10이면 이 파라미터가 지정한 값 이내이므로 각 조건에 해당하는 범위의 값을 정렬하면서 결과를 생성한다. LIMIT 60이면 파라미터 설정값을 초과하므로 각 조건에 해당하는 범위의 값을 모두 가져온 후 정렬한다.

이 값의 설정에 따라 중간 값의 정렬을 진행하면서(on-the-fly) 결과를 수집하느냐, 결과 값을 먼저 수집한 후 정렬하느냐의 차이가 발생하므로, 이 값이 너무 크면 오히려 성능에 불리할 수 있다.

access_ip_control

access_ip_control은 서버 접속을 허용하는 IP를 제한하는 기능을 지정하는 파라미터이다. 기본값은 no이다. 자세한 내용은 데이터베이스 서버 접속 제한을 참고한다.

access_ip_control_file

access_ip_control_fileaccess_ip_control 값이 yes인 경우 서버가 허용하는 IP 목록을 저장한 파일 이름을 지정하는 파라미터이다. 자세한 내용은 데이터베이스 서버 접속 제한을 참고한다.