database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL News 10015 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 10015
PostgreSQL 11 나왔습니다.
작성자
김상기(ioseph)
작성일
2018-10-18 23:31
조회수
782

 

https://www.postgresql.org/about/press/presskit11/kr/

 

파티션 테이블 견고성과 성능 향상

PostgreSQL 11에서 해시 파티션 테이블을 지원합니다. 이제, 나열 list 파티션, 범위 range 파티션과 함께 파티션 키로 해시 키를 사용할 수 있게 되었습니다. PostgreSQL 11에서는 PostgreSQL 외부 자료 싸개 wrapper인 postgres_fdw 모듈을 이용하는 외부 테이블을 파티션 하위 테이블로 사용하는 기능이 좀 더 좋아져서 분산 노드 자료 처리가 좋아졌습니다.

PostgreSQL 11에서는 이제 하위 테이블의 기본키, 참조키, 인덱스, 트리거를 상위 테이블에 한 번만 정의하면, 하위 테이블을 만들 때 자동으로 반영됩니다. 또한, 파티션 키로 사용되고 있는 값을 바꾸는데, 바뀐 자료가 새 파티션에 있어야 할 때 자동으로 해당 파티션으로 자료를 옮깁니다.

PostgreSQL 11에서는 파티션 삭제 처리를 새롭게 구현해서 파티션 테이블 읽기 성능을 높였습니다. 하나 더, PostgreSQL 11에서는 흔하게 사용하는 "upsert" 구문 - 없으면 insert, 있으면 update - 을 이제 파티션 테이블에서도 사용할 수 있습니다. 이렇게 해서, 응용 프로그램 코드를 단순화하며, 네트워크 전송량을 줄일 수 있습니다.

트랜잭션을 관리하는 프로시져

개발자는 데이터베이스 서버 내에서 일련의 작업을 한 번에 하고자 할 때, 지난 20년간 PostgreSQL에서는 사용자 정의 함수를 만들어 사용해 왔습니다. 이 사용자 정의 함수는 그 함수 본문 전체 작업을 하나의 트랜잭션으로 처리하기 때문에, 그 안에서 일어나는 작업들을 쪼개서 개별 트랜잭션으로 처리할 수 없었습니다. PostgreSQL 11에서는 이 개별 작업들의 트랜잭션 관리가 가능한 프로시져 개체를 새로 추가했습니다. 이로써 개발자는 더욱 나은 서버 측 프로그램 개발을 할 수 있게 되었습니다. 이 프로시져는 대량 자료 일괄 입력 작업에서 오류가 발생하면 예외 처리를 하고, 나머지는 정상 입력하는 작업을 하는 데 사용할 수 있습니다.

CREATE PROCEDURE 명령으로 SQL 프로시져를 만들고, CALL 명령으로 실행합니다. 현재 PL/pgSQL, PL/Perl, PL/Python, PL/Tcl 내장 프로시져 언어로 프로시져를 만들 수 있습니다.

병렬 쿼리 기능 향상

PostgreSQL 11에서는 병렬 쿼리 성능도 향상되었습니다. 순차적 병렬 탐색 비용이 줄었으며, 파티션 테이블 대상 해시 조인 작업에서도 병렬 처리가 가능합니다. UNION으로 묶인 쿼리도 각 부분 쿼리가 병렬 처리를 할 수 없다면, 그것들을 각각 병렬 처리 합니다. (모호한 표현 - SELECT ... UNION SELECT ... 인 경우 첫 SELECT 구문을 병렬 처리 못한다면, 첫 SELECT 전체, 다음 SELECT 전체를 각각 병렬 쿼리 작업자가 작업 함 - 옮긴이)

PostgreSQL 11에서는 여러 자료 정의 명령(DDL)에 대해서도 병렬 처리를 합니다. CREATE INDEX 명령으로 B-tree 인덱스를 만들 때도 병렬 처리를 한다는 것은 주목할 만합니다. CREATE TABLE .. AS, SELECT INTO, CREATE MATERIALIZED VIEW같이 테이블이나 구체화한 뷰를 만드는 쿼리도 병렬 처리가 가능해졌습니다.

표현식 처리용 Just-in-Time (JIT) 짜깁기

PostgreSQL 11은 JIT (Just-In-Time) 컴파일을 지원하여 쿼리 실행 중 특정 표현식의 실행을 더 빠르게 합니다. (이를 JIT 컴필레이션, 짜깁기라고 함) PostgreSQL에서는 LLVM 프로젝트에서 제공하는 JIT 라이브러리를 이용하여, WHERE 절에 있는 표현식, 대상 목록, 집계함수, 예측, 몇몇 내부 연산 등의 처리 속도를 높입니다.

JIT 짜깁기 기능을 이용하려면, 먼저, LLVM 관련 패키지들을 설치하고, 이 기능을 활성화 해서 PostgreSQL 서버를 만들고, 환경 설정 파일에서 jit = on 설정을 하거나 세션에서 SET jit = on 명령을 이용해야 합니다.

일반 사용자 경험 개선

PostgreSQL 관계형 데이터베이스의 기능 개선은 사용자의 적극적인 반응 feedback과 PostgreSQL 개발자들의 많은 노력 없이는 불가능합니다. 다음은 이번 PostgreSQL 11 버전에 추가된 사용자 경험을 개선하는 많은 기능 가운데, 주요 기능 몇 가지입니다:

  • NULL 허용하지 않는 ALTER TABLE .. ADD COLUMN .. DEFAULT .. 작업에서 기존 테이블 전체 자료 다시 쓰기 하던 것을 이제는 속성 정보만 등록해서 처리 하는 것으로 성능을 개선했습니다.
  • "인덱스 커버링", 인덱스 관련 구문에서 INCLUDE 절이 추가되었습니다. 이 기능으로 B-tree 인덱스가 아니어도 인덱스 단독 탐색 성능을 높였습니다.
  • 윈도우 함수에서, RANGE 모드에서 PRECEDING/FOLLOWING 구문 지원, GROUPS 모드 지원, 프레임 제외 기능이 추가 되었습니다.
  • PostgreSQL 명령행 인터페이스(psql)에서 "quit", "exit" 명령을 사용할 수 있습니다. 이렇게 해서 명령행 도구들이 좀 더 쉽게 종료할 수 있도록 했습니다.

이번 배포판과 관련된 모든 내용은 아래 release notes 페이지에서 자세히 다룹니다:

https://www.postgresql.org/docs/11/static/release-11.html (영문)

한글 문서는 이제 실실 작업해야죠.

[Top]
No.
제목
작성자
작성일
조회
10073PostgreSQL 11.3 나왔습니다.
김상기
2019-05-13
393
10041PostgreSQL 11.2 나왔습니다.
김상기
2019-02-15
522
10022PostgreSQL 11.1 나왔습니다.
김상기
2018-11-12
694
10015PostgreSQL 11 나왔습니다.
김상기
2018-10-18
782
9997PostgreSQL 10.5 나왔습니다.
김상기
2018-08-10
730
9977PostgreSQL 10.4 나왔습니다.
김상기
2018-05-15
787
9952PostgreSQL 10.3 나왔습니다.
김상기
2018-03-05
852
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.071초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다