본문 바로가기

Database

(20)
JMeter로 부하테스트 실행하기 Backend 개발 후 API 부하 테스트로 성능 측정을 해보고자 한다면 Apache JMeter Tool을 활용하여 간단히 수행해볼 수 있다. 다운로드 링크는 아래와 같다https://jmeter.apache.org/download_jmeter.cgi 링크로 들어가서 바이너리 압축파일을 받고 원하는 위치에 푼다.  압축 해제 후 아래 jar파일을 더블클릭해서 실행한다.D:\DOWNLOAD\Development\apache-jmeter-5.6.3\bin\ApacheJMeter.jar JMeter 실행 후 아래와 같이 동시 부하 주입을 위한 Threadd Group을 생성한다.테스트계획 -> 우클릭 -> Add -> Threads(User) -> setUp Thread Group 수행 Number of T..
DBeaver Heap memory 늘리기 Database client tool로 DBeaver를 많이 사용하고 있는데 용량큰 Script 실행을 하거나 여러 작업을 많이 할 경우 java heap space 부족 메세지를 종종 보게 된다. 이럴 경우에는 Tool 실행시 vmarg를 넘겨주면 실행시 heap memory를 정해준 size만큼 설정하게 할 수 있다. 실행시 인자는 아래와 같이 줄 수 있다. -vmargs -Xms4096m (구동시 확보되는 최소 메모리) -vmargs -Xmx8192m (최대 사용 메모리) 아래는 윈도우 바로가기 아이콘에서 실행 명령어에 최소 구동 메모리 4096m을 설정한 모습이다. 현재 할당된 Heap memory 를 확인하려면 DBeaver -> window -> Preferences -> Genaral 에서 ..
[Postgresql] Synology Docker Postgresql 설치하기 시놀로지 720+ 도커 상에서 Postgresql 을 설치해보고 간단하게 데이터베이스, 스키마, 테이블을 만들어본다. 우선 시놀로지 도커 -> Registry 로 들어가서 postgres 로 검색하고 아래 이미지를 다운로드 받는다. 다운로드를 실행하고 완료되면 도커 -> Image 항목에 다운로드 목록에 보이게 된다. 이미지를 선택한 후 Launch를 수행해서 Container 를 만들어 본다. Network설정은 기본 bridge로 선택된 것 확인하고 다음으로 진행한다. 일반 설정은 그대로 가고 하단 Advanced Settings으로 들어간다. 초기 Launch 시 사용할 root 계정을 아래와 같이 입력해준다. 로컬 네트웍에서 시놀로지 도커 컨테이너에 접속할 Port를 지정해준다. 최종 설정 Sum..
DBeaver 설치 및 DB 연결 DB 접속 Client 툴로 Oracle, Postgresql, MariaDB 등 현존하는 대부분의 DB 연결을 지원하는 DBeaver 툴을 설치해보고 DB 연결은 어떻게 설정하는지 확인해보고자 한다. 우선 공식 설치 파일은 아래 페이지로 가서 다운로드 받는다. https://dbeaver.io/download 원하는 플랫폼의 인스톨러를 다운로드 받고 설치한다. (기본 설정값으로 설치 진행. Next 계속 입력) Postgresql DB 연결 DBeaver 툴 설치 후 Tool 상에서 Postgresql DB 연결을 위해 jdbc 드라이버 설정을 해준다. 우선 Postgresql 용 jdbc 드라이버를 다운로드 받는다. https://jdbc.postgresql.org/download 앞서 설치한 DBe..
[Postgresql] Sql 쿼리 수행 시간 늘리기 Postgresql 에서 수행시간이 긴 쿼리를 실행하면 쿼리 수행시간을 초과했다는 메세지가 출력 될 때가 있다. Postgresql에 기본으로 설정된 쿼리 수행시간이 있는데 이 기준을 넘어서서 쿼리를 수행했기 때문이다. 설정값은 아래와 같이 Postgresql DB 쿼리를 수행하면 볼 수 있다. 아래는 pg_settings 테이블에서 statement로 시작하는 레코드를 검색한 결과이다. 결과는 기본 30초로 설정되어 있는것을 볼 수 있다. 설정된 Timeout값을 현재 연결된 세션에서 변경하고자 한다면 다음 명령어를 수행하면 된다. 아래는 10분으로 타임아웃값을 설정한 예시이다. 위에서 설정한대로 적용되었는지 확인하기 위해 다시한번 pg_settings값을 조회해 본다. 10분으로 타임아웃 값이 변경되..
[Postgresql] max_connection 늘리기, 현재 connection 확인 (windows) postgresql db 를 실행하다 보면 connection pool이 다 차서 애플리케이션에서 연결을 못한다는 메세지를 볼 때가 있다. 현재 설치되어 있는 postgresql db의 설정값들을 쿼리로 쉽게 알아볼 수 있다. 현재 DB 설정값 조회 Heidisql 등의 DB Client 툴을 실행 시키고 Postgresql db에 접속 한다. 아래 쿼리를 수행하면 현재 설정되어있는 DB system 설정을 볼 수 있다 SELECT * FROM pg_settings; 여러가지 설정 중에 max_connections 값이 최대 동시 접속수를 지정하는 값이다. 기본값은 100으로 설정되어 있음을 볼 수 있다. 현재 사용되는 connection 정보 조회 최대 동시 접속 값은 찾았으나 여러 어플리케이션 수행중..
[Mybatis] Mybatis interceptor 활용하기 Mybatis로 DB mapper를 수행하는데 interceptor를 등록하면 DB 쿼리 실행 전후로 등록한 interceptor를 수행해서 사전 작업을 할 수 있다. 예를 들어 조회 쿼리 수행시 Paging 처리를 일괄적으로 interceptor에서 할 수 도 있고 Mybatis 쿼리 인자로 세션 정보를 전역에서 설정해서 모든 쿼리마다 해당 세션 값을 넣을 필요 없이 만들 수도 있다. Mybatis interceptor 설정 방법 mybatis-config.xml 생성 아래와 같이 mybatis-config.xml 설정 파일을 생성한다. 기존에 이미 사용중이라면 plugins 밑에 interceptor class를 등록해준다. Interceptor Class 정의 Interceptor Class를 만들..
[Postgresql] RETURNING 활용 예제 Postgresql의 RETURNING 문을 사용하면 insert, delete, update 시 수행된 행을 return 받을 수 있고 이를 응용하여 여러 step을 하나의 쿼리로 수행해 볼 수 있다. 단일 Insert 예제 테스트 전 테이블 내용 CREATE TABLE users ( user_id serial PRIMARY KEY, NAME VARCHAR(20) ) CREATE TABLE users_backup ( user_id serial PRIMARY KEY, NAME VARCHAR(20) ) Insert returning 예제 WITH rows AS ( INSERT INTO users VALUES (10, '테스트') RETURNING user_id ) INSERT INTO users_backu..