PostgreSQL 10

PPAS 성능분석을 위한 DRITA설정 및 기본활용

성능분석 정보 수집을 위한 DRITA 설정 및 기본활용 PostgreSQL에서는 활용할 수 없는 기능이며, PPAS (PostgreSQL기업용)에서만 활용 가능합니다. 1. DTIRA사용을 위한 환경 설정 postgresql.conf 파일 변경 --> timed_statistics = on 설정이후 DBMS 재기동 필요 2. Snapshot 생성 select * from edbsnap(); 3. Snapshot 정보 조회 select * from get_snaps(); 4. SYSTEM Wait 정보 조회 select * from sys)rpt(1,2,20); 파라미터1 : Snapshot 시작 번호 파라미터2 : Snapshot 종료 번호 파라미터3 : Snapshot Top 이벤트 개수 5. 성능 분..

PostgreSQL/ PPAS Char Type 바인드 변수 사용에 따른 상용제품 기능 비교

Char Type의 컬럼에 바인드 변수에 따른 형변환 비교 ==============================create table zz_test001( a char(10)); insert into zz_test001 values ('12345'); prepare v(char) as select * from zz_test001 where a=$1; execute v('12345'); -- 결과값 조회됨 execute v('12345 '); -- 결과값 조회됨 ==> 해당 결과는 동일하다. ======================================== create table zz_test001( a char(10)); insert into zz_test001 values ('12345'); ..

PostgreSQL Trigger 및 Foreign Key Disable

PostgreSQL Trigger 및 Foreign Key Disable 일반적인 Trigger의 경우는 pg_trigger에서 상태를 확인하고 Disable할 수 있다. Foreign Key의 경우는 ORACLE처럼 바로 Disable할 수 없으므로 해당 테이블의 내부 Trigger 확인하여 Disable 한다. --특정 테이블의 Trigger Disable select tgname, tgenabled from pg_trigger where tgrelid in (select oid from pg_class where relname = 'zz_test002'); --위에 조회된 결과를 기준으로 아래와 같이 해당 Trigger Disable alter table ZZ_TEST002 disable trigg..

카테고리 없음 2014.07.03

[Admin] 2.Orations (명령어)

1. PSQL 기본명령어 1. psql 접속/종료 및 DB접속 명령어 설명 $ psql edb DB에 enterprisedb 롤로 접속 $ psql mydb mydb DB에 enterprisedb 롤로 접속 $ psql -d mydb mydb DB에 enterprisedb 롤로 접속 $ psql edb -U username edb DB에 해당 username 롤로 접속 $ psql -d edb -U username edb DB에 해당 username 롤로 접속 =# \q psql 종료 (ctrl + d) =# \c {db_name} 다른 DB에 접속 =# \c {db_name} {usr_name} 다른 DB에 해당 사용자로 접속 2. DB접속 주요 Object 조회 명령어 설명 =# \l 데이터베이스 목..

PostgreSQL vs ORACLE Insert 성능 비교

PostgreSQL과 ORACLE의 Insert 성능 비교 진행한 결과 입니다. 해당 테스트 결과는 서버의 사양이 소규모일 경우에 어떤 DBMS의 성능이 좋은지 간접적으로 비교해 본 결과입니다. 서버의 사양이나 환경에 따라서 일부 성능 차이는 다르게 나타날 수 있습니다. • Single Core 테스트 • 동일 Platform 수행 • Single Mode 수행 • Char (10) 240개 필드 테이블 • Archive Mode • 테이블에 인덱스 없음 • 동일 서버에 PostgreSQL과 ORACLE 환경에서 테스트 건수(만건) PostgreSQL ORACLE ----------+-----------+--------- 1만건 2.21초 1.29초 2만건 14.46초 3.72초 5만건 14.79초 30..

PostgreSQL 사용자 Data Type 정의

사용자 정의 Data Type 생성 테스트 1. 사용자 Type 생성 (함수) CREATE TYPE compfoo AS (f1 int, f2 text); CREATE FUNCTION getfoo() RETURNS SETOF compfoo AS $$ SELECT fooid, fooname FROM foo $$ LANGUAGE SQL; 2. 사용자 Type 생성 (Check) CREATE TYPE bug_status AS ENUM ('new', 'open', 'closed'); CREATE TABLE bug ( id serial, description text, status bug_status ); 3. 사용자 Type 생성 (Check) CREATE TYPE box; CREATE FUNCTION my_bo..

[Admin] 1.Architecture : Instance

1. Architecture(Instance) : Overview 2. Instance : Server Process 1) Postermaster(edb-postgres) - Supervisory 데몬 프로세스로서 항상 Running 상태 유지 - Client로 부터의 Connection 요청에 대한 인증 및 허가 수행 (Listener기능) - Connection 요청 시 Postgres Process 할당/기동 (세션 별 Single-threaded Backend 수행, 1:1) - 요청 Call과 Postgres 연결 후 통신에 관여하지 않음 - DBMS 운영에 필요한 프로세스 비정상 종료 시 재 기동 수행 2) Postgres (Server Backend Process) - Hybrid Pipe ..

PostgreSQL 내부 아키텍처에 따른 성능 지연 이슈?

ORACLE과 비교하여 내용을 확인하시면 PostgreSQL의 내부 구조를 좀 더 이해하기 쉬울 겁니다. 1. PostgreSQL Object관리 - Object와 파일이 1:1 구조라 할 수 있어 이해하기 쉬운 구조 - 하나의 디렉토리에 여러개의 파일 I/O가 발생되어 처리지연이 심해질 수 있는 구조 - 따라서 I/O성능이 상용제품에 비해 하드웨어 의존도가 높은 구조임 2. 추기형 아키텍처 채택 - 데이터의 UPDATE/ DELETE 할 때 이전에 데이터를 남겨두고 새로운 데이터를 끝에 추가하는 구조 (참고로 상용제품의 경우 추기형 구조를 채택하고 있는 제품은 없음, ORACLE은 스냅샷형 구조) - 추기형 구조의 단점은 데이터의 변경이 빈번할 경우 File Size가 커져 심각한 성능 저하의 원인이 ..

PostgreSQL (PPAS) PLAN 및 실행계획 보기 [2]

explain analyze를 통한 PLAN 분석 예제 입니다. 해당 명령은 PLAN확인 뿐만 아니라 실제 수행이 동반되므로 주의해야 합니다. 1. 테스트를 위한 테이블은 먼저 생성한 테이블을 기준으로 합니다. create table zz_test001 ( a varchar(5), b varchar(10) ); create table zz_test002 ( c varchar(5), a varchar(5), b varchar(10) ); 2. SQL PLAN 정보 보기 (실행계획 확인) explain analyze select * from zz_test001 a, zz_test002 b where a.a = '00001' and a.a = b.a; 3. SQL PLAN 결과 explain analyze을 ..

PostgreSQL (PPAS) PLAN 및 실행계획 보기 [1]

PostgreSQL (PPAS)에서 SQL의 PLAN (실행계획) 확인 방법중 하나를 소개 합니다. 테스를 위해 아래와 같은 절차로 테스트 진행하였습니다. 1. 테스트를 위한 테이블 생성 create table zz_test001 ( a varchar(5), b varchar(10) ); create table zz_test002 ( c varchar(5), a varchar(5), b varchar(10) ); 2. 테스트를 위한 인덱스 생성 (필요시) create index zz_IDX_001 on zz_test001 ( a ); create index zz_IDX_003 on zz_test001 ( b ); create index zz_IDX_002 on zz_test002 ( a ); 3. SQL..