Postgresql 에서 슬로우 쿼리 조회 방법 1. 슬로우 쿼리 발생시 로그 남기기 2. 쿼리 실행계획 로그에 남기기 3. 쿼리 실행 통계 확인 1. 슬로우 쿼리가 발생하면 로그 남기기 쿼리 시간이 어느정도 느려지면, 쿼리 실행문을 로그에 남기기 위해 postgresql.conf에 설정값 추가한다. log_min_duration_statement = 5000 그리고 config를 reload 해주면 된다. SELECT pg_reload_conf(); pg_reload_conf ---------------- t (1 row) 특정 데이터베이스, 특정 유저 권한에서 발생한 슬로우쿼리만 모니터링 할 수도 있다. ALTER DATABASE test SET log_min_duration_statement = 5..
PostgreSQL 배열형 컬럼 선언 - 데이터 타입 선언 시 ' [] '만 붙이면 배열형 컬럼이 됨 ● 배열형 컬럼 생성 CREATE TABLE member( id serial PRIMARY KEY, name varchar(20), age integer, hobby varchar(100)[] -- 배열형 컬럼 ); ● 배열형 컬럼에 데이터 추가하기 -- 배열형 데이터를 {} 안에 ","로 구분해서 입력한다. INSERT INTO member (name, age, hobby) VALUES('kim', 10, '{book, music}'); -- 데이터를 하나만 넣을 때는 위와 같이 쓴다. INSERT INTO member (name, age, hobby) VALUES('lee', 12, '{game}')..
● 준비 (단일 트랜잭션) (1) 새 파티션 테이블 생성 (2) 기존 테이블명 변경 (3) 기존 테이블과 이름이 같은 뷰 생성. -> 새 파티션 테이블과 이름이 바뀐 옛 일반 테이블을 모두 함께 조회하는 뷰 (4) 새로 생성한 뷰에 insert, delete rule 추가 (5) update에서 사용할 트리거 함수 생성, 새로만든 뷰에 트리거 지정 ● 자료 이동 (단일 트랜잭션) (1) 기본키 단위로 하나씩 모든 자료에 대해서 update 구문을 실행 ● 뒷정리 (1) 뷰 삭제 (2) 파티션 테이블을 뷰 이름 변경 다음은 뷰에 insert, delete 룰과 update 트리거를 지정하는 작업을 pgbench 테이블을 대상으로 한 것입니다. -- 새 해쉬 파티션 하위 테이블 생성 BEGIN; CREATE..
오라클 파티셔닝 (ORACLE Partitioning) 파티션이란 테이블에 있는 특정 컬럼값을 기준으로 데이터를 분할해 저장해놓은 테이블. 이때 논리적인 테이블은 1개이지만 물리적으로는 분할한 만큼 파티션이 만들어져 입력되는 컬럼 값에 따라 분할된 파티션별로 데이터가 저장되며 파티션 테이블을 만드는 목적은 대용량 테이블의 경우 데이터 조회 시 효율성과 성능을 높이기 위한 것 관리적 측면 이점 : 파티션 단위 백업, 추가, 삭제, 변경 성능적 측면 이점 : 파티션 단위 조회 및 DML 수행 - 클러스터, IOT와 마찬가지로 관련 있는 데이터가 흩어지지 않고 물리적으로 인접하도록 저장하는 클러스터링 기술에 속함 - 내부에 몇 개의 세그먼트를 생성하고 그것들이 논리적으로 하나의 오브젝트임을 메타 정보로 딕셔너..
TABLESPACE 오라클 데이터 저장 단위 중 가장 상위에 있는 단위를 테이블 스페이스라고 합니다. 데이터 저장 단위는 물리적, 논리적단위로 나눌 수 있습니다. 물리적 단위는 파일을 의미하고 논리적 단위는 데이터블록 -> 익스텐트 -> 세그먼트 -> 테이블스페이스 이렇게 나뉩니다. 데이터 블록 여러개가 모여 익스텐트 하나를 만들고, 익스텐트 여러개가 모여 하나의 세그먼트를 구성하며, 테이블스페이스는 가장 최상위 개념의 데이터 공간입니다. 1. 조회 SELECT * FROM DBA_TABLESPACES; --테이블스페이스 조회 2. 생성 create tablespace [테이블 스페이스명] datafile 'D:\dev\oradata' --파일경로 size 10M --초기 데이터 파일 크기 설정 auto..
1. 확장 모듈 설치 create extension pgcrypto; enterprisedb 계정으로 해당 모듈을 설치할 스키마 선택 후 실행. 2. Raw encryption functions convert_to/convert_from : 문자열 변환/복원 encode/decode : 16진수 인코딩/디코딩 encrypt/decrypt : 암호화/복호화 예제) -> ENC_KEY는 실제 사용할 암호화KEY로 대체해야 함. * 암호화 : utf8로 변환한 후, 암호화키로 'aes'알고리즘을 사용하여 암호화한 후, 그 값을 16진수(hex)로 encoding함 select encode(encrypt(convert_to('홍길동','utf8'),'ENC_KEY','aes'),'hex'); --utf8, ae..