본문 바로가기

PostgreSQL

(16)
PostgreSQL 10+ Serial vs Identity column 비교 PostgreSQL Serial 타입과 그 문제점 Postgresql의 smallserial,serial,bigserial은 실제로 존재하는 데이터 타입은 아니며 실제로는 smallint, int, bigint를 편리하기 사용하도록 default값과 의존도(디펜던시) 그리고 오너십을 연결시켜 놓은 것임. 편하게 시퀀스를 사용할 수 있지만, 이로 인해 발생되는 부가적인 문제점들은 아래와 같음. SQL표준에 대응하지 않으며 PostgreSQL에만 존재함으로써 발생하는 이슈가 있음(이관시) Serial속성을 ALTER TABLE 명령어로 변경이 불가 default를 DROP하더라도 시퀀스가 DROP되지 않음 테이블 오너십 등의 변경이 필요한 경우 시퀀스에 대한 권한을 별도로 부여하여야 함(시리얼의 경우 테이블..
PostgreSQL 암호화 및 암호화 컬럼 조사 새로운 직장에서 AWS RDS 환경을 사용하며 재미있게 업무를 하고 있는 와중, ORACLE to PostgreSQL 이행을 위한 준비작업으로 암호화에 대한 내용을 정리하며 수행한 작업들을 정리하였다. . AWS RDS를 사용하며 느끼는 점은 될 것 같은건 찾아서 하면 거의 되는데 의외의 부분에서 안되는 부분이 튀어나오고, 사용한지 5달 가량 되었는데 커뮤니티 버전 PostgreSQL에서는 상상도 못한 버그가 툭 튀어나오고는 AWS에서 해결해주는 것만을 기다려야 할 수 있다는 점이다.(단기간에 해결할 것 같지 않지만..) 다만 SCALE OUT,CLONE 등의 기능들이 편하다는 부분과 시간을 많이 아낄 수 있다는 점은 큰 장점이다. . 암호화 얘기로 돌아오면, 기존 ASIS 시스템은 현재는 사용하면 안전..
oracle_fdw 내용정리 stackoverflow에서 postgresql 관련 내용을 검색해봤다면 한번쯤 보았을 Laurenz Albe가 관리하는 postgresql 확장 프로그램으로 하단의 git에서 대부분의 이슈,소스 등의 내용을 찾을 수 있다. laurenz/oracle_fdw: PostgreSQL Foreign Data Wrapper for Oracle (github.com) GitHub - laurenz/oracle_fdw: PostgreSQL Foreign Data Wrapper for Oracle PostgreSQL Foreign Data Wrapper for Oracle. Contribute to laurenz/oracle_fdw development by creating an account on GitHub. g..
bloat postgresql check query bloat postgresql check query SELECT current_database(), schemaname, tablename, /*reltuples::bigint, relpages::bigint, otta,*/ ROUND((CASE WHEN otta=0 THEN 0.0 ELSE sml.relpages::FLOAT/otta END)::NUMERIC,1) AS tbloat, CASE WHEN relpages
PostgreSQL에 oracle_fdw 설정하기- 2/2 이번 글에서는 docker 관계없이 PostgreSQL에서 oracle_fdw를 설치 및 외부 테이블 생성하여 데이터를 조회해보는 작업까지를 진행하려고 한다. 설치전 확인 및 고지 사항 오라클 클라이언트 버전 확인 후 설치 필요(필수) oracle fdw github에서 README 확인 필요(오라클 client 호환 버전 관련) https://github.com/laurenz/oracle_fdw fdw나 dblink는 온라인 업무에는 권장하지 않음 보편적인 체크 사항들 목록 오라클 클라이언트 다운로드가 필요(zip 파일) - 오라클 계정 필요 오라클 서버와 버전이 맞는 버전을 사용하는 것이 좋음(이슈 관련) 32비트 오라클 서버와 64비트 PostgreSQL 서버는 동작 불가.(동일한 bit의 프로그램..
PostgreSQL에 oracle_fdw 설정하기- 1/2 다른 DBMS에도 존재하지만 PostgreSQL에서 종종 필요한 부분들은 DBLINK로, 다른 종류의 DBMS와 연결을 통해 원하는 정보를 가져오는 것이다. 이번 글에서는 Docker로 Oracle DBMS 컨테이너를 생성, PostgreSQL에서 oracle_fdw를 설치, 외부 테이블을 만들어 조회하는 것을 2개의 글로 나누어 구성해 볼 것이다. 첫번째 글은 Oracle DBMS 12버전을 docker 컨테이너로 올리는 부분이다. 두번째 글에서는 postgreSQL 12버전에서 oracle_fdw 확장 프로그램을 설치하여 Oracle에 있는 테이블을 조회하는 것을 다뤄보겠다. Docker 환경에서 Oracle 사용하기 Migrator나 DBLINK 등의 연결방식의 환경 테스트가 필요한 경우에 유용할듯..
PostgreSQL 13(1편 Index size) 며칠 전인 9월 24일에 PostgreSQL 13 정식 버전이 릴리즈 되었다. 이번 기회에 개인적으로 공부도 할겸, 공식 문서와 해외 여러 곳에서 다룬 이번 PG13에 대한 글들을 한글로 정리하고자 한다. 참조한 곳들은 이 글들의 가장 아래에 언급해 두었다. 내용이 이해가 가지 않거나, 불명확한 부분이 있다면 그곳을 참고하기 바란다. PG 13 버전에서 성능과 관련하여 변경된 점들 중, 가장 관심이 가는 부분들은 중복 데이터 관련하여 B-TREE 인덱스 사이즈가 줄어든 것,인덱스에 대한 VACUUM 작업과 REINDEX 작업이 병렬 처리 지원이 된다는 점들이다. 그 외에도 파티션 관련 성능 개선이나 사용되었던 복제 슬롯으로 인한 WAL 파일 늘어남으로 인한 DISK 용량 관리 문제 등이 해결되었다. 이 ..
PostgreSQL Toast에 관한 정리 해당 글은 PG 11 기준으로 작성되었습니다. Toast(The Oversized-Attribute Storage Technique) 정의: Toast는 크기가 고정되지 않는 타입의 Column 에 적용되는 기술로, 보다 큰 column 사이즈를 지원하기 위해 값을 압축/분할하여 별도의 pg_toast에 각각의 row로 담아 관리하는 기술이다. fixed page size (commonly 8 kB) 보다 큰 경우에 적용된다. - toast 관련하여 4가지 모드가 있으며, 모드들은 압축 유/무 분할 유/무 에 관련된 내용들이 있다. - PostgreSQL 11버전 기준으로 toast 관련된 table space를 별도로 지정하는 기능은 없다. (오라클에는 lob column을 별도의 테이블 스페이스로 지..