콘텐츠로 이동

9. Altibase 7.1.0.0.0의 새로운 기능 및 특징#

이 장은 Altibase 버전 7.1.0.0.0에서 사용할 수 있는 새로운 기능들을 소개한다.

이 장은 아래의 절로 구성된다.

기능 개선#

SQL 확장#

논 파티션드 테이블 및 파티션드 테이블 변환 지원(Partition Exchange)#

CONJOIN TABLE: 이 구문은 논 파티션드 테이블을 테이블의 파티션으로 변환한다. 리스트 파티션과 범위 파티션은 지원하며, 해시 파티션은 지원하지 않는다. 대상 테이블의 데이터는 전부 생성된 파티션으로 이동한다.

DISJOIN TABEL: 이 구문은 파티션드 테이블의 파티션을 논 파티션드 테이블로 변환한다. 해시 파티션은 지원하지 않으며, 논 파티션드 테이블은 기존 파티션의 속성을 그대로 갖는다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • SQL Reference > 3장 데이터 정의어> CONJOIN TABLE

  • SQL Reference > 3장 데이터 정의어> DISJOIN TABLE

테이블의 테이블스페이스 변경#

테이블의 테이블스페이스 저장 공간을 이동할 수 있으며, 이 때 인덱스와 LOB 칼럼도 함께 이동한다. 단 파티션드 테이블은 한 파티션의 레코드만 이동할 수 있기 때문에, 모든 파티션의 레코드를 이동하기 위해서는 DDL을 여러 번 수행해야 한다.

자세한 설명은 아래의 매뉴얼을 참조하기 바란다.

  • SQL Reference > 3장 데이터 정의어> ALTER TABLE

  • Getting Started Guide > 6장 데이터베이스 이중화 > DDL 수행시 주의사항

  • Replication Manual > 3장 이중화 사용 > 이중화 대상 테이블에 DDL 실행

큐 생성시 사용자 정의 칼럼 지원#

큐를 생성할 때 사용자가 칼럼을 정의할 수 있다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • SQL Reference> 3장 데이터 정의어> CREATE QUEUE
COMPACT, AGING 구문 확장#

파티션드 테이블에 파티션 단위로 COMPACT 및 AGING구문을 수행할 수 있다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • SQL Reference> 3장 데이터 정의어 > ALTER TABLE
NOWAIT, WAIT 지원#

INSERT, FOR UPDATE, DEQUEUE 문에 NOWAIT, WAIT옵션을 지원한다. WAIT옵션에 지정할 수 있는 시간 단위는 second(초), millisecond(msec, 1/1000초), microsecond(μsec, 1/1000000초)이며 표기하지 않으면 초 단위가 적용된다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • SQL Reference > 3장 데이터 정의어 > INSERT

  • SQL Reference > 3장 데이터 정의어 > SELECT

  • SQL Reference > 3장 데이터 정의어 > DEQUEUE

NOCOPY 옵션 지원#

저장 프로시저와 저장 함수에서 사용되는 매개 변수 및 지역 변수에 NOCOPY옵션을 지원한다. 이 옵션은 참조(reference)값을 활용하여 인자를 할당하는 방식이다. NOCOPY옵션은 ASSOCIATIVE ARRAY타입만 지원한다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • Stored Procedures Manual > 2. 저장 프로시저 SQL문
패키지 서브프로그램 다중정의(overloading) 지원#

저장패키지에서 서브프로그램을 다중정의(overloading)할 수 있다. 즉, 서브프로그램의 이름은 같지만, 인자이름 및 데이터 타입 등을 다르게 정의할 수 있다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • Stored Procedure > 13장 Altibase 저장 패키지
FETCH구문에 BULK COLLECTION 지원#

Fetch 구문에서 BULK COLLECT INTO기능을 지원한다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • Stored Procedures Manual > 5.커서 > FETCH

커서 사용시 정적 SQL 지원

OPEN FOR구문에서 동적 SQL뿐만 아니라 정적 SQL을 사용할 수 있다. 정적SQL은 USING 절과 함께 사용할 수 없다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • Stored Procedures Manual > 8. 동적 SQL > OPEN FOR
자율 트랜잭션 및 예외 초기화 프라그마 지원#

컴파일 옵션을 지정하는 프라그마(Pragma)로써 트랜잭션 프라그마(Autonomous_Transaction Pragma)와 예외 초기화 프라그마(Exception_Init Pragma)를 지원한다.

트랜잭션 프라그마는 PSM객체가 트랜잭션 내에서 독립적으로 작동한다. 예외 초기화 프라그마는 예외 변수를 Altibase의 에러 코드로 초기화 할 수 있다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • Stored Procedures Manual > 10장 프라그마
집계 함수 및 윈도우 함수 추가#

집계 함수와 윈도우 함수에서 사용할 수 있는 백분율 순위, 비율 분석 함수, 그룹의 누적 분포도, 정렬 함수, 상관 계수, 표본 공분산, 모공 분산 등을 아래와 같이 지원된다.

  • PERCENT_RANK

  • CUME_DIST

  • RATIO_TO_REPORT

  • NTILE

  • CORR

  • COVAR_SAMP

  • COVAR_POP

  • FIRST

  • LAST

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • SQL Reference> 7장 SQL 함수> 집계 함수

  • SQL Reference> 7장 SQL 함수> 분석 함수

사용자 잠금(user lock) 함수 추가#

사용자가 세션에서 사용자 잠금을 요청하거나 해제할 수 있는 함수가 아래와 같이 지원된다.

  • USER_LOCK_REQUEST

  • USER_LOCK_RELEASE

추가된 프로퍼티는 아래와 같다.

  • USER_LOCK_POOL_INIT_SIZE

  • USER_LOCK_REQUEST_CHECK_INTERVAL

  • USER_LOCK_REQUEST_LIMIT

  • USER_LOCK_REQUEST_TIMEOUT

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • SQL Reference> 7장 SQL 함수> 기타 함수
VARBYTE 데이터 타입 및 함수 지원#

가변 길이를 갖는 이진 데이타 타입을 지원하기 위해 VARBYTE를 지원한다. 또한 여러 형태의 데이터 타입을 VARBYTE 데이터 타입으로 변환하거나, VARBYTE 데이터 타입을 다른 데이터 타입으로 변환할 수 있도록 아래와 같은 함수를 추가하였다.

  • RAW_SIZEOF

  • TO_RAW

  • RAW_TO_NUMERIC

  • RAW_TO_FLOAT

  • RAW_TO_INTEGER

  • RAW_CONCAT

  • SUBRAW

  • RAW_TO_VARCHAR

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • General Reference > 1 자료형> 이진 데이터 타입, 데이터 타입 변환과 호환

  • SQL Reference> 7장 SQL 함수

  • Precompiler > 5장 호스트 변수 데이터 타입 > 확장된 데이터 타입

  • Precompiler > 5장 호스트 변수 데이터 타입 > 칼럼 타입과 호스트 변수 타입

기타 함수 추가#

현재 세션에 접속한 환경 정보(context)를 반환하는 함수가 지원된다.

  • SYS_CONTEXT

VARBYTE 타입의 문자열을 인코딩 또는 디코딩하여 반환하는 함수를 아래와 같이 지원한다.

  • BASE64_DECODE

  • BASE64_ENCODE

Quoted printable형태로 변환된 VARBYTE 타입의 문자열을 디코딩 또는 인코딩하여 VARBAYTE 타입의 문자열로 반환하는 함수를 아래와 같이 지원한다.

  • QUOTE_PRINTABLE_DECODE

  • QUOTE_PRINTABLE_ENCODE

특정 스키마에 소속되지 않고 전체 데이터베이스 수준에서 관리되는 알티베이스 파이프(PIPE)방식의 함수를 추가하였다. 추가된 함수는 아래와 같다.

  • MSG_CREATE_QUEUE

  • MSG_DROP_QUEUE

  • MSG_SND_QUEUE

  • MSG_RCV_QUEUE

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • SQL Reference> 7장 SQL 함수> 기타 함수
LOCK TABLE에 'UNTIL NEXT DDL' 구문 지원#

세션이 NON-AUTOCOMMIT 모드일 때 테이블에 UNTIL NEXT DDL을 수행하면, DDL(데이터 정의어)이 실행되기 직전에 자동으로 커밋을 수행한다. 그러나 lock_mode에서 EXCLUSIVE 모드를 지정하면, DDL을 수행하기 직전에 자동으로 커밋을 수행하지 않는다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • SQL Reference> 4장 데이터 조작어 > LOCK TABLE
ENABLE, DISABLE 지원#

트리거 생성할 때 활성화(enable) 상태와 비활성화(disable) 상태를 설정할 수 있다. ALTER TIGGER 구문으로 상태를 변경할 수 있다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • SQL Reference> 3장 데이터 정의어> CREATE TRIGGER
COMPACT 구문 확장#

ALTER TABLE table_name COMPACT 질의문 사용 시에 MAXPAGES 구문으로 압축할 수 있는 최대 페이지 크기를 지정할 수 있다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • SQL Reference> 3장 데이터 정의어 > ALTER TABLE
TOUCH구문 지원#

TOUCH 구문을 사용하면 테이블의 SCN(System Commit Number)이 증가하여, 옵티마이저가 해당 테이블이 포함된 질의의 실행 계획을 강제로 재생성한다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • SQL Reference> 3장 데이터 정의어 > ALTER TABLE
세션 종료 기능 추가#

ALTER DATABASE 구문으로 사용자 이름을 지정하여 해당하는 세션을 종료할 수 있으며, ALL구문으로 모든 세션을 한번에 종료할 수 있다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • SQL Reference> 3장 데이터 정의어 > ALTER DATABASE
공간 객체 생성 함수#

공간 데이터를 위한 공간 객체 생성 함수가 추가되었다.

  • RECTFROMTEXT : WKT(Well-Known Text) 형태로 RECTANGLE 공간 객체를 입력 받아 폴리곤 객체를 생성

  • RECTFROMWKB : WKB(Well-Known Binary) 형태로 RECTANGLE 공간 객체를 입력 받아 폴리곤 객체를 생성

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • Spatial SQL Reference> 2장 공간 질의어 > 공간 객체 생성 함수
CONNECT BY#

계층 질의에 사용되는 CONNECT BY 노드에서 인덱스를 사용할 경우에 출력이 변경되었다.

  • CONNECT BY ( INDEX: index_name, ACCESS: acc_num, COST: cost )

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • TuningGuide > 4. EXPLAIN PLAN 사용하기 > 실행 노드 > CONNECT BY

응용 프로그램 개발 인터페이스 확장 및 개선#

JDBC 로깅#

JDBC 로깅(JDBC Logging)은 Altibase JDBC 드라이버에서 발생하는 각종 로그를 기록하는 것을 의미하며, java.util.logging 패키지를 이용하여 관련된 로그를 기록할 수 있다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • JDBC > 3장 고급 기능 > JDBC 로깅

데이터 타입#

날짜형 데이터 형식 지원#

요일과 상관없이 일 년 중 몇 번째 주인지를 반환하는 'WW2' 데이터 형식을 지원한다. 1월 1일부터 시작하여 7일 단위로 구분하며, 53주가 마지막 주이다.

또한 율리우스력과 기원전 날짜를 지원하는 날짜형 데이터 타입이 아래와 같이 추가되었다.

  • SYYYY : 기원전 년도까지 표기

  • SCC : 기원전 세기까지 표기

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • General Reference>1장 자료형> 날짜형 데이터 타입

내장 함수#

DBMS Stats 함수#

파티션의 통계 자료를 복사할 수 있는 내장 함수가 추가되었다.

  • COPY_TABLE_STATS

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • Stored Procedures Manual>12장 Altibase 저장 프로시저와 내장 함수> DBMS Stats
그 외 함수들#

V$SESSION 정보를 설정하는 저장 프로시저가 추가되었다.

  • SET_CLIENT_INFO

  • SET_MODULE

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • Stored Procedures Manual>12장 Altibase 저장 프로시저와 내장 함수> 그 외 함수들

클라이언트 툴#

altimon.sh 개선#

Altibase 서버와 altiMon이 설치된 호스트 장비를 모니터링 하기 위해 altimon.sh를 개선하였다. altiMon은 주로 OS 정보와 DB정보를 모니터링한다. OS 정보를 수집하기 위해서는 PICL 라이브러리를 사용할 수 있는 운영체제에서 가능하다.

altiMon을 사용하기 위해 $ALTIBASE_HOME/altiMon/conf 디렉토리에 있는 config.xml, Metrics.xml, GroupMetrics.xml 파일을 설정해야 한다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • Utilities Manual> 4장. 기타 Utilities > altimon.sh
호스트 변수#

선언되는 호스트변수의 기본값이 변경되었다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • iSQL User's Manual>2장 iSQL사용 예 > 호스트변수 > 호스트 변수 선언하기
iSQL 사용시 치환변수 지원#

iSQL에서 START 명령을 사용하여 치환 변수가 있는 스크립트 파일을 실행할 때 파라미터가 입력될 수 있도록 지원한다. 치환 변수를 사용하려면, SET DEFINE ON을 실행해야 한다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • iSQL User's Manual>1장 이용방법> iSQL 명령어

  • iSQL User's Manual>2장 사용 예> 파일 관리

iSQL 명령어 추가#

iSQL에서 SELECT 결과에 해당하는 칼럼들의 표시 형식을 설정할 수 있는 명령어가 추가되었다.

  • SET NUMF[ORMAT] : 숫자 데이터 타입의 표시 형식 설정

  • COLUMN : 문자형 또는 숫자형 타입의 칼럼 표시 형식 설정

  • CL[EAR] COL[UMNS] : COLUMN명령어로 설정된 모든 칼럼의 설정을 해제

  • SET VERIFY: 치환 변수가 포함된 스크립트 파일 수행 시, 치환 변수에 사용자가 입력한 파라미터 값으로 교체되기 이전과 이후의 SQL문을 출력할지 여부를 지정

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • iSQL User's Manual>1장 이용방법> iSQL 명령어

  • iSQL User's Manual>2장 사용예> SELECT 결과 포맷팅

iLoader의 -prefetch_rows 지원#

iLoader의 out모드에서 사용할 수 있는 -prefetch_rows옵션을 지원한다. -prefetch_rows옵션은 select 쿼리를 수행할 때 데이터베이스에서 한 번에 가져오는 레코드의 개수를 지정할 수 있다. 기본값은 0이며, 이 값은 네트워크 패킷에 담을 수 있는 최대 크기를 의미한다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • iLoader User's Manual> 2장 iLoader 사용 방법> 명령행 옵션

  • iLoader User's Manual> 2장 iLoader 사용 방법> 일반 옵션

파티션 정보 출력#

DESC 명령어를 사용하여 테이블 구조를 볼 때 파티션에 대한 정보도 함께 보여주는 기능이다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • iSQL User's Manual>1장 이용방법> iSQL명령어

  • iSQL User's Manual>2장 사용 예> SELECT 결과 포맷팅

aexport 프로퍼티 추가#

aexport 유틸리티의 프로퍼티들이 아래와 같이 추가되었다.

  • ILOADER_ARRAY: iLoader로 데이터 다운로드 또는 업로드 시, 한 번에 처리할 수 있는 row 개수 지정

  • ILOADER_COMMIT: iLoader로 데이터 업로드 시, 커밋할 수 있는 단위(개수) 지정

  • ILOADER_ERRORS: iLoader로 데이터를 업로드할 때 발생하는 에러를 허용할 수 있는 최대 개수 지정

  • ILOADER_PARALLEL: iLoader로 데이터 다운로드 또는 업로드 시, 병렬로 처리할 수 있는 쓰레드의 개수 지정

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • Utilitities Manual > 1장 aexport > aexport 사용방법
dataCompJ 추가#

Altibase 데이터베이스에서 이기종 데이터베이스로 데이터를 복제할 때, 데이터 정합성 확인과 데이터 불일치를 해소하기 위한 도구로써 dataCompJ가 추가되었다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • Utilitities Manual > 3장 dataCompJ
비동기 prefetch 속성 추가#

비동기 prefetch 관련 기능을 iLoader의 성능 옵션과 aexport 프로퍼티에 추가하였다.

  • async_prefetch off| on| auto (off 기본값) : OUT 명령어와 함께 사용

  • ILOADER_ASYNC_PREFETCH = ON| OFF|AUTO

자세한 정보는 아래 매뉴얼을 참조하기 바란다

  • iLoader User's Manual > 2. iLoader 사용방법

  • Utilities Manual> 1. aexport > aexport 사용방법

효율성#

서버 성능 향상#

패키지 지원#

Altibase에서 추가된 시스템 정의 저장 패키지는 아래와 같다.

  • DBMS_ALERT: 데이터베이스에서 발생하는 이벤트를 다른 사용자에게 알리는 기능으로 인터페이스로 제공한다.

  • DBMS_APPLICATION_INFO
    클라이언트의 애플리케이션 정보를 관리하기 위해 성능 뷰의 값을 설정한다.

  • DBMS_CONCURRENT_EXEC
    프로시저를 동시에 실행할 수 있다.

  • DBMS_LOCK
    사용자가 잠금(Lock)을 요청하거나 해제할 수 있는 인터페이스를 제공한다.

  • DBMS_OUTPUT
    버퍼에 저장된 문자열을 사용자가 클라이언트에게 출력한다.

  • DBMS_RANDOM
    임의의 숫자를 생성한다.

  • DBMS_SQL
    동적 SQL을 사용하는 프로시저와 함수를 제공한다.

  • DBMS_STATS
    다양한 데이터베이스 통계 정보를 사용할 수 있는 서브프로그램을 제공한다.

  • DBMS_RECYCLEBIN
    삭제(Drop)되어 휴지통에서 관리되고 있는 테이블을 시스템에서 완전히 삭제(Purge)할 수 있다.

  • DBMS_UTILITY
    다양한 유틸리티의 서브프로그램을 제공한다.

  • STANDARD : STANDARD 패키지는 기본 데이터 타입 외에 PSM내에서 별도의 선언없이 사용할 수 있는 타입을 정의한다.

  • UTL_FILE
    운영 체제에서 관리하는 텍스트 파일에 접근하여 읽기, 쓰기를 할 수 있다.

  • UTL_RAW
    RAW(VARBYTE) 타입의 데이터를 다른 데이터 타입으로 변환하거나 조작할 수 있다.

  • UTL_TCP
    저장 프로시저에서 TCP 접속을 제어한다.

패키지 프로시저 및 함수에 대한 자세한 내용은 아래의 매뉴얼을 참조하기 바란다

  • Stored Procedures Manual > 13. Altibase 저장 패키지 > 시스템 정의 저장 패키지
Result Cache 지원#

Result Cache를 사용하여 처음 실행한 쿼리의 중간 결과나 최종 결과를 서버에 저장하여, 같은 쿼리가 다시 실행되면 결과를 재사용할 수 있다.

Result Cache와 관련하여 아래의 힌트가 추가되었다.

  • RESULT_CACHE

  • TOP_RESULT_CACHE

Result Cache와 관련하여 추가된 프로퍼티는 아래와 같다.

  • RESULT_CACHE_ENABLE

  • RESULT_CACHE_MEMORY_MAXIMUM

  • TOP_RESULT_CACHE_MODE

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • General Reference> 2장 알티베이스 프로퍼티> 성능 관련 프로퍼티

  • SQL Reference > 2장 Altibase SQL 기본> 힌트 목록

  • Performance Tuning Guide > 6장 SQL 힌트> 힌트의 종류

  • Performance Tuning Guide > 7. SQL Plan Cache > Result Cache 관련 프로퍼티

DBLink의 Two-Phase Commit (2PC) Level 지원#

알티베이스와 이기종 데이터베이스 시스템 간에 수행하는 글로벌 트랜잭션의 정합성을 보장하기 위해 DB Link는 2PC 프로토콜을 제공한다. DBLINK_GLOBAL_TRANSACTION_LEVEL프로퍼티를 Two-Phase Commit Level로 설정한 다음에 커밋을 수행하면 알티베이스와 원격 데이터베이스 시스템들이 2PC 프로토콜을 이용하여 메시지를 서로 주고 받으며 수행한다.

분산 트랜잭션의 정합성 보장과 관련하여 추가 및 수정된 프로퍼티는 아래와 같다.

  • DBLINK_RECOVERY_MAX_LOGFILE

  • DBLINK_GLOBAL_TRANSACTION_LEVEL

분산 트랜잭션의 정합성 보장과 관련하여 추가 및 수정된 성능 뷰는 아래와 같다.

  • V$DBLINK_NOTIFIER_TRANSACTION_INFO

  • V$DBLINK_LINKER_DATA_SESSION_INFO

  • V$DBLINK_GLOBAL_TRANSACTION_INFO

  • V$DBLINK_REMOTE_STATEMENT_INFO

  • V$DBLINK_REMOTE_TRANSACTION_INFO

  • V$SESSION

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • Database Link User's Manual > 1. 데이터베이스 링크 소개

  • Database Link User's Manual > 3. 데이터베이스 링크 환경 설정

  • Database Link User's Manual > 4. 데이터베이스 링크 사용법

  • General Reference> 2. Altibase 프로퍼티

  • General Reference>3장 데이터 딕셔너리

자동 통계정보 수집#

옵티마이저가 사용할 수 있는 통계정보를 자동으로 수집할 수 있다.

자동 통계정보 수집과 관련하여 추가된 프로퍼티는 아래와 같다.

  • OPTIMIZER_AUTO_STATS

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • General Reference > 2. Altibase 프로퍼티 > 성능 관련 프로퍼티

  • Performance Tuning Guide > 5장 옵티마이저와 통계정보 > 통계정보 관리

힌트 추가#

정규화 형태, 조인방법, 조인순서, 테이블 접근방법, 병렬 질의 처리에 대한 힌트가 추가되었다. 호환성을 위해서 추가된 힌트는 아래와 같다.

  • INDEX_ASC

  • INDEX_DESC

  • LEADING

  • NO_EXPAND

  • NO_INDEX

  • NO_PARALLEL

  • NO_USE_HASH

  • NO_USE_MERGE

  • NO_USE_NL

  • NO_USE_SORT

  • USE_CONCAT

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • Performance Tuning Guide > 6장 SQL 힌트 > 힌트의 종류

  • SQL > 2장 Altibase SQL 기본 > 힌트 목록

실행 계획의 지연#

실행 계획의 그래프를 기준으로 sorting, windowing, grouping, set, distinction의 계층적 실행(hierarchy execute)이 Fetch에서 수행되는 것을 지연시키는 기능을 제공한다. 사용자는 실행 계획에서 상위 PROJECTION 아래에 DELAY 플랜이 추가된 것을 확인할 수 있다.

실행 계획의 지연과 관련하여 추가된 프로퍼티는 아래와 같다.

  • OPTIMIZER_DELAYED_EXECUTION

Result Cache와 관련하여 추가된 힌트는 아래와 같다.

  • NO DELAY

  • DELAY

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • General Reference> 2장 알티베이스 프로퍼티> 성능 관련 프로퍼티

  • Performance Tuning Guide > 6장 SQL 힌트 > 힌트의 종류

  • SQL > 2장 ALTIBASE HDB SQL 기본 > 힌트 목록

IPCDA 프로토콜 지원#

IPCDA(Inter Process Communication Direct Attach)는 Altibase에서 제공하는 프로토콜로써, IPC와 마찬가지로 공유 메모리를 이용하여 클라이언트와 데이터베이스 서버간에 데이터를 교환한다. IPCDA는 IPC보다 데이터 읽기, 쓰기를 단순화하고 클라이언트, 서버 사이의 유휴 시간을 줄여 성능이 향상되었다.

CLI, ODBC는 지원하지만, JDBC는 지원하지 않는다. 또한 IPCDA를 사용할 때는 LOB 데이터를 사용할 수 없다. 현재는 Linux 운영체제에서만 사용할 수 있다.

IPCDA를 이용하여 통신하려면, 아래의 IPCDA 관련 서버 프로퍼티를 설정해야 한다.

  • IPCDA_CHANNEL_COUNT

  • IPCDA_DATABLOCK_SIZE

  • IPCDA_FILEPATH

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • Administration's Manual >1장 Altibase 소개 > Altibase 특징

  • Administration's Manual >2장 Altibase 구성요소> trc 디렉토리

  • Administration's Manual >12장 서버/클라이언트 통신 > 통신 방법

  • General Reference > 2장 Altibase 프로퍼티> 세션 관련 프로퍼티

  • iSQL User's Manual > 1장 iSQL 이용방법 > iSQL 설정

  • iSQL User's Manual > 1장 iSQL 이용방법 > iSQL 관련 환경변수

ACCESS LIST 관리 확장#

특정 IP 주소의 접근 및 차단을 허용할 수 있는 외부 액세스 정보를 설정할 수 있는 ACCESS_LIST_FILE 프로퍼티를 추가하였다. 이 프로퍼티가 활성화되면 기존의 ACCESS_LIST 프로퍼티에 정의된 목록은 무시되고, 외부 파일에 기록된 정보로 접근할 수 있다.

최대 1024개의 항목까지 사용할 수 있으며, 'ACCESS_LIST=' 문구는 생략하고 내용만 작성한다.

추가된 프로퍼티는 아래와 같다.

  • ACCESS_LIST_FILE

추가된 성능 뷰는 아래와 같다.

  • V$ACCESS_LIST

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • General Reference> 2장 알티베이스 프로퍼티> 기타 프로퍼티

  • General Reference> 3장 데이터 딕셔너리> V$ACCESS_LIST

  • SQL Reference> 5장 데이터 제어어> ALTER SYSTEM

이중화 데이터 손실 최소화를 위한 버퍼 제공#

이중화 데이터가 손실되는 것을 최소화하기 위한 버퍼를 제공한다. 일정한 양의 xlog를 저장한 후 네트워크가 종료되면, 버퍼에 저장된 xlog를 적용하고 종료된다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • Replication > 3. 이중화 사용 > 이중화 부가기능 > 병렬 적용자 옵션

자원 효율성#

메모리 인덱스 재구성(Reorganization) 지원

메모리 인덱스의 리프 노드를 통합하여 인덱스 공간을 재구성한다. 데이터에 비해 인덱스의 범위가 클 때, 특정 인덱스에 단편화 현상이 있을 경우에 사용하면 공간 효율성이 향상된다. 메모리 B-tree인덱스만 사용할 수 있다.

이번 릴리즈에 새롭게 추가된 프로퍼티는 아래와 같다.

  • MEM_INDEX_KEY_REDISTRIBUTION

  • MEM_INDEX_KEY_REDISTRIBUTION_STANDARD_RATE

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • SQL Reference> 3장 데이터 정의어 > ALTER INDEX

  • General Reference > 2.Altibase 프로퍼티 > 성능 관련 프로퍼티

고가용성#

하이브리드 파티션드 테이블(Hybrid Partitioned Table) 지원#

하이브리드 파티션드 테이블을 지원하여, 파티션드 테이블이 디스크 테이블스페이스에서 메모리/휘발성 테이블스페이스로, 메모리/휘발성 테이블스페이스에서 디스크 테이블스페이스로 데이터를 이동할 수 있다. 단 글로벌 인덱스는 지원되지 않는다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • SQL Reference > 3장 데이터 정의어 > ALTER TABLE

  • Administrator's Manual> 7장 파티션드 객체 > 파티션드 객체

  • Administrator's Manual> 7장 파티션드 객체 > 파티셔닝 방법

  • Replication Manual> 3장 이중화 사용> 이중화 대상 테이블에 DDL 실행

  • Getting Started Guide > 6장 데이터베이스 이중화 > DDL 수행 시 주의사항

PSM 문자형 데이터 크기 결정#

저장 프로시저와 저장 함수에서 사용하는 문자형 데이터 타입의 크기를 결정하는 프로퍼티가 추가되었다.

  • PSM_CHAR_DEFAULT_PRECISION

  • PSM_NCHAR_UTF8_DEFAULT_PRECISION

  • PSM_NCHAR_UTF16_DEFAULT_PRECISION

  • PSM_NVARCHAR_UTF8_DEFAULT_PRECISION

  • PSM_NVARCHAR_UTF16_DEFAULT_PRECISION

  • PSM_PARAM_AND_RETURN_WITHOUT_PRECISION_ENABLE

  • PSM_VARCHAR_DEFAULT_PRECISION

문자형 데이터 타입의 기본 크기를 설정하는 프로퍼티는 제거되었다.

  • CHAR_DEFAULT_PRECISION

  • NCHAR_DEFAULT_PRECISION

  • NVARCHAR_DEFAULT_PRECISION

  • VARCHAR_DEFAULT_PRECISION

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • General Reference>1장 자료형> 문자형 데이터 타입

  • General Reference>2장 알티베이스 프로퍼티> 기타 프로퍼티

일괄처리(Batch) 지원 함수#

알티베이스 데이터베이스 링크가 일괄처리(Batch)할 수 있는 Remote함수와 관련 함수를 추가하였다. 그리고 추가된 함수는 저장 프로시저 내에서만 사용할 수 있다.

  • IS_ARRAY_BOUND

  • IS_FIRST_ARRAY_BOUND

  • IS_LAST_ARRAY_BOUND

  • REMOTE_ADD_BATCH

  • REMOTE_ALLOC_STATEMENT_BATCH

  • REMOTE_BIND_VARIABLE_BATCH

  • REMOTE_EXECUTE_BATCH

  • REMOTE_FREE_STATEMENT_BATCH

  • REMOTE_GET_RESULT_COUNT_BATCH

  • REMOTE_GET_RESULT_BATCH

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • Database Link User's Manual > 4. 데이터베이스 링크 사용법

스냅샷(SNAPSHOT) 백업 지원#

스냅샷(SNAPSHOT) 백업은 BEGIN SNAPSHOT을 할 때의 시점을 기준 SCN으로 설정하고, iLoader 유틸리티를 사용하여 해당 SCN을 기준으로 데이터를 EXPORT할 수 있다.

스냅샷 설정 및 해제는 SYSDBA 권한을 가진 DBA만 가능하다.

이번에 새롭게 추가된 프로퍼티는 아래와 같다.

  • SNAPSHOT_DISK_UNDO_THRESHOLD

  • SNAPSHOT_MEM_THRESHOLD

이번에 추가된 성능 뷰는 아래와 같다.

  • V$SNAPSHOT

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • Admin > 10장 백업 및 복구 > SNAPSHOT 백업

  • SQL > 3장 데이터 정의어 > ALTER DATABASE

  • General Reference > 2장 Altibase 프로퍼티> 백업 및 복구 관련 프로퍼티

  • General Reference > 3.데이터 딕셔너리 > 성능뷰

jdbcAdapter#

Altibase Adapter for JDBC(jdbcAdapter)는 Altibase에서 변경된 데이터를 JDBC가 지원되는 다른 데이터베이스에 적용할 수 있는 유틸리티이다.

Altibase 6.3.1 이상이거나, JDBC 4.1 이하를 사용하는 다른 데이터베이스에서 사용할 수 있다.

jdbcAdapter는 리눅스 운영체제만 지원한다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • Adapter for JDBC User's Manual

기타#

그 외 변경사항#

Table Function 지원#

TABLE FUNCTION은 사용자 정의 함수에서 반환하는 associative array 타입이나 record 타입의 변수를 테이블 형태로 변환하여 출력한다. 이 기능은 함수가 아니다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다.

  • SQL > 4장 데이터 조작어 > SELECT
동적 SQL의 메소드4추가#

동적SQL 메소드4가 추가되었다. 이 메소드는 프로그램 실행 중에 사용자가 파라미터 마커의 값을 입력할 수 있다. BIND VARIABLES, SELECT LIST, ARRAY SIZE SET함수가 추가되었고 OPEN, FETCH, EXECUTE함수가 개선되었다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • Precompiler User's Manual > 10. 동적 SQL문 > 동적 SQL문의 종류
Precompile커서의 CLOSE구문#

OPEN상태인 커서를 CLOSE수행 없이 OPEN 할 수 있으며, 이는 CLOSE한 후에 OPEN한 것과 같다.

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • Precompiler User's Manual > 8. 커서 처리 SQL문 > 커서 관련 내장 SQL문
Hibernate와 연동지원#

Altibase가 비표준SQL을 제공할 수 있도록 Hibernate의 dialect클래스를 지원한다. Hibernate 공식 라이브러리는 AltibaseDialect.class을 포함하지 않기 때문에 AltibaseDialect.java파일을 컴파일하고 포팅해야 사용할 수 있다.

자세한 정보는 아래의 Altibase Github 사이트와 매뉴얼을 참조하기 바란다.

  • https://github.com/ALTIBASE/hibernate-orm/blob/master/ALTIBASE_DIALECT_PORTING.md
JRE 1.5 지원#

JDK, JRE1.5 이상을 지원한다.

비동기 prefetch 속성 추가#

아래 CLI 함수에 비동기 prefetch 관련 속성이 추가되었다.

  • SQLDriveConnect
    : SOCK_RCVBUF_BLOCK_RATIO

  • SQLGetConnectAttr
    : ALTIBASE_SOCK_RCVBUF_BLOCK_RATIO

  • SQLSetConnectAttr
    : ALTIBASE_SOCK_RCVBUF_BLOCK_RATIO

  • SQLSetStmtAttr
    : ALTIBASE_PREFETCH_ASYNC
    : ALTIBASE_PREFETCH_AUTO_TUNING

JDBC 드라이버에 비동기 prefetch 관련 속성이 추가되었다.

  • sock_rcvbuf_block_ratio

  • fetch_async

  • fetch_auto_tuning

자세한 정보는 아래 매뉴얼을 참조하기 바란다.

  • CLI User's Manual > 2. Altibase CLI 함수

  • JDBC User's Manual > 2. Altibase CLI 함수

DB LINK에서 JVM bit(32/64)를 지정할 수 있는 프로퍼티가 추가되었다.

  • ALTILINKER_JVM_BIT_DATA_MODEL_VALUE
CLI 함수 속성 추가#

아래 CLI 함수에 네트워크 I/O 비용을 줄이기 위한 ALTIBASE_PREPARE_WITH_DESCRIBEPARAM 속성이 추가되었다.

자세한 정보는 아래 매뉴얼을 참조하기 바란다.

  • CLI Manual > 2장 Altibase CLI 함수 > SQLSetStmtAttr

중단 및 제거된 기능들#

윈도우 플랫폼 지원 중단#

Altibase 7.1부터 윈도우용 서버 및 클라이언트를 지원하지 않는다.

DataPort 기능 제거#

데이터를 이전할 수 있던 DataPort 기능 및 유틸리티(convdp)를 지원하지 않는다.

공유 메모리 기능 미지원#

공유 메모리(Shared Memory) 모드를 7.1부터 지원하지 않는다. 공유 메모리를 지원하는 관리 도구 'shmutil' 및 아래의 프로퍼티를 삭제한다.

  • SHM_DB_KEY

  • SHM_PAGE_COUNT_PER_KEY

  • STARTUP_SHM_CHUNK_SIZE

Failover 속성 제거#

Failover 관련 아래의 연결 속성을 제거하였다.

  • LoadBalance

  • HealthCheckDuration

자세한 정보는 아래의 매뉴얼을 참조하기 바란다

  • Replication Manual > 4장 Fail-Over

  • JDBC User's Manual > 1장 JDBC 시작하기

  • JDBC User's Manual > 3장 고급 기능

프로퍼티#

새로운 프로퍼티 추가#

이번 릴리즈에 새롭게 추가된 프로퍼티는 아래와 같다.

  • ACCESS_LIST_FILE

  • DBLINK_RECOVERY_MAX_LOGFILE

  • EXTPROC_AGENT_SOCKET_FILEPATH

  • IPCDA_CHANNEL_COUNT

  • IPCDA_DATABLOCK_SIZE

  • IPCDA_FILEPATH

  • LOCK_MGR_CACHE_NODE

  • LOCK_MGR_DETECTDEADLOCK_INTERVAL

  • LOCK_MGR_MAX_SLEEP

  • LOCK_MGR_MIN_SLEEP

  • LOCK_MGR_SPIN_COUNT

  • LOCK_MGR_TYPE

  • LOCK_NODE_CACHE_COUNT

  • MEM_INDEX_KEY_REDISTRIBUTION

  • MEM_INDEX_KEY_REDISTRIBUTION_STANDARD_RATE

  • MSG_QUEUE_PERMISSION

  • OPTIMIZER_AUTO_STATS

  • OPTIMIZER_DELAYED_EXECUTION

  • OPTIMIZER_PERFORMANCE_VIEW

  • PSM_CURSOR_OPEN_LIMIT

  • PSM_CHAR_DEFAULT_PRECISION

  • PSM_NCHAR_UTF8_DEFAULT_PRECISION

  • PSM_NCHAR_UTF16_DEFAULT_PRECISION

  • PSM_NVARCHAR_UTF8_DEFAULT_PRECISION

  • PSM_NVARCHAR_UTF16_DEFAULT_PRECISION

  • PSM_PARAM_AND_RETURN_WITHOUT_PRECISION_ENABLE

  • PSM_VARCHAR_DEFAULT_PRECISION

  • RESULT_CACHE_ENABLE

  • RESULT_CACHE_MEMORY_MAXIMUM

  • REPLICATION_SENDER_SEND_TIMEOUT

  • SNAPSHOT_DISK_UNDO_THRESHOLD

  • SNAPSHOT_MEM_THRESHOLD

  • TABLE_LOCK_MODE

  • TOP_RESULT_CACHE_MODE

  • USER_LOCK_POOL_INIT_SIZE

  • USER_LOCK_REQUEST_CHECK_INTERVAL

  • USER_LOCK_REQUEST_LIMIT

  • USER_LOCK_REQUEST_TIMEOUT

프로퍼티 제거#

이번 릴리즈에서 제거된 프로퍼티는 아래와 같다.

  • AUTODETECT_UNIQ_INX

  • CHAR_DEFAULT_PRECISION

  • DATAPORT_FILE_DIRECTORY

  • DATAPORT_IMPORT_COMMIT_UNIT

  • DATAPORT_IMPORT_STATEMENT_UNIT

  • IPC_PORT_NO

  • NCHAR_DEFAULT_PRECISION

  • NVARCHAR_DEFAULT_PRECISION

  • SHM_DB_KEY

  • SHM_PAGE_COUNT_PER_KEY

  • STARTUP_SHM_CHUNK_SIZE

  • VARCHAR_DEFAULT_PRECISION

프로퍼티 변경#

아래 프로퍼티의 기본값이 변경되었다.

  • DEFALUT_THREAD_STACK_SIZE
    : 1048576 --> 3145728 (Byte)

  • REPLICATION_LOG_BUFFER_SIZE
    : 30 --> 0(MB)

  • REPLICATION_PREFETCH_LOGFILE_COUNT
    : 0 --> 3

  • OPTIMIZER_AUTO_STATS
    : 2-->0 (통계정보 수집안함)

  • NORMALFORM_MAXIMUM
    : 128 --> 2048(개수)

메타 테이블#

메타 테이브 제거#

이번 릴리즈에서 삭제된 메타 테이블은 아래와 같다.

  • SYS_DATA_PORTS_

성능 뷰#

이번 릴리즈에서 추가된 성능 뷰는 아래와 같다.

  • V$ACCESS_LIST

  • V$DBLINK_NOTIFIER_TRANSACTION_INFO

  • V$RESERVED_WORDS

  • V$SHANPSHOT

이번 릴리즈에서 수정된 성능 뷰는 아래와 같다.

  • V$DBLINK_LINKER_DATA_SESSION_INFO

  • V$DBLINK_GLOBAL_TRANSACTION_INFO

  • V$DBLINK_REMOTE_STATEMENT_INFO

  • V$DBLINK_REMOTE_TRANSACTION_INFO

  • V$MUTEX: THREAD_ID 추가

  • V$REPSENDER

  • V$REPSENDER_PARALLEL

  • V$SESSION

  • V$TRANSACTION : 트랜잭션의 고립화 수준을 나타내는 ISOLATION_LEVEL 추가