Postgresql / PPAS
-
[완료]/* abtest.content.base.popupAbtestFormRouteListPageDataSeries */Postgresql / PPAS/Query tuning 2022. 8. 29. 11:52
* 개선 포인트 AS-IS 수행 시간 : 10초 내외 TO-BE 수행 시간 : - 분석 결과 : 2개의 recursive 쿼리 중 하단에 있는 recursive 를 제외하고 수행할 경우 0.2초 내외로 수행됨. 하단 recursive 영역에 대한 변경이 필요 하단 recursive 쿼리는 아래와 같다. 원본 쿼리 SELECT /* abtest.content.base.popupAbtestFormRouteListPageDataSeries / BB.RNUM, BB.TEST_ID, BB.VARIATION_ID, BB.CONTENTS_ID, BB.CONTENTS_NAME, BB.CATEGORY_NAME, BB.CATEGORY_ID, BB.PARENT_CATEGORY_ID, BB.CREATE_DATE, BB.CAT..
-
[완료]schedule.distr.newScheduleListPageDataPostgresql / PPAS/Query tuning 2022. 8. 29. 11:48
검증계 AS-IS Successfully run. Total query runtime: 50 secs 759 msec. TO-BE Successfully run. Total query runtime: 48 secs 906 msec. 운영계 AS-IS 총 쿼리 실행시간: 22 secs 75 msec. TO-BE 총 쿼리 실행시간: 19 secs 하기 조건으로 인해 19초 이하로 튜닝 불가. rownum 3초 min/max 16초 → 위 로우넘과 통계 함수를 제거하면 0.07 초 가 나옵니다 인덱스 생성 스크립트 --INDEX create index idx_pt_lw_sche_mst_04 on IMCSUSER.PT_LW_SCHE_MST (UPDATE_ID); create index idx_pt_lw_sche..
-
[완료] /* modifySchedule.base.selectContentListBySeriesIdDup */Postgresql / PPAS/Query tuning 2022. 8. 29. 11:29
DEVSTP Mylg DB 수행 시간 : AS-IS : 2.9 sec TO-BE : 60ms 개선효과 : 97.93 % 원본 쿼리 WITH SUPER AS ( SELECT ALBUM_ID AS SERIES_ID FROM IMCSUSER.PT_LA_ALBUM_RELATION A WHERE A.ALBUM_GROUP_ID IN (SELECT ALBUM_GROUP_ID FROM IMCSUSER.PT_LA_ALBUM_RELATION WHERE ALBUM_ID IN ( '0154348001' ) AND QUALITY_TYPE = A.QUALITY_TYPE AND SALE_TYPE = A.SALE_TYPE AND GROUP_TYPE = 'C' GROUP BY ALBUM_GROUP_ID) UNION SELECT ALB..
-
[완료] /* modifySchedule.base.selectContentListBySeriesId */Postgresql / PPAS/Query tuning 2022. 8. 29. 11:24
DEVSTP Mylg DB 수행 시간 : AS-IS : 3.7 sec TO-BE : 60ms 개선효과 : 98.37 % * 원본 쿼리 WITH SUPER AS ( SELECT ALBUM_ID AS SERIES_ID FROM IMCSUSER.PT_LA_ALBUM_RELATION A WHERE A.ALBUM_GROUP_ID IN (SELECT ALBUM_GROUP_ID FROM IMCSUSER.PT_LA_ALBUM_RELATION WHERE ALBUM_ID IN ( '0154348001' ) AND QUALITY_TYPE = A.QUALITY_TYPE AND SALE_TYPE = A.SALE_TYPE AND GROUP_TYPE = 'C' GROUP BY ALBUM_GROUP_ID) UNION SELECT A..
-
[튜닝불가] /* categoryform.dr.getAlbumSeriesList */Postgresql / PPAS/Query tuning 2022. 8. 29. 11:00
Legacy DB 수행 시간 : 10분 정도 소요 MSA DB – MylgDB STP DB 기준 AS-IS Query 수행 속도 : 3분 * 개선포인트 도출 * 개선 포인트 SET work_mem = '1000MB'; ( 5초 정도 수행 빨라짐) join imcsuser.PT_LA_ALBUM_INFO ALB_INFO on (AST_INFO.ALBUM_ID = ALB_INFO.ALBUM_ID and AST_INFO.SCREEN_TYPE = 'I' ) -- SCREEN_TYPE INDEX 없음 ( I / N ) join imcsuser.PT_LA_ALBUM_SUB ALB_SUB on (AST_INFO.ALBUM_ID = ALB_SUB.ALBUM_ID and ALB_INFO.ALBUM_ID = ALB_SUB...
-
튜플(Tuple) 과 백쿰(VACUUM)Postgresql / PPAS/운영 2015. 1. 28. 23:17
PostgreSQL 은 다른 데이터베이스 시스템은 테이블(Table)에 데이터를 레코드(Record) 혹은 로우(Row)라고 한다. 그런데, PostgreSQL 에서는 튜플(Tuple)이라는 것이 존재합니다. 이 튜플은 PostgreSQL 에서 매우 중요한 요소 입니다. 이에 대해서 간략하게 알아 보도록 하겠습니다. 1. 통계정보 확보.먼저 이 튜플을 알기 위해서는 PostgreSQL 이 제공하는 통계정보를 알아 볼 필요가 있다. 이 통계정보에는 로우 갯수와 튜플 갯수등을 볼 수 있고 로우에 변화에 따라서 이들이 어떻게 변하는지를 추적할 수 있으며 이를 토대로 튜플이 과연 무엇인지를 알 수 있게 된다. 샘플 테이블을 만들자.testdb2=> CREATE TABLE tuple_test ( id NUMERI..
-
[PostgreSQL] LOCK TABLE table_name IN APostgresql / PPAS/Lock 2015. 1. 28. 16:42
기본적인 사용법은 다음과 같다.BEGIN WORK;LOCK TABLE table_name IN ACCESS EXCLUSIVE MODE;SELECT * FROM table_name WHERE id=10;Update table_name SET field1=test WHERE id=10;COMMIT WORK;ACCESS SHAREACCESS EXCLUSIVE 락 모드와 충돌이 난다. SELECT 와 ANALYZE 명령어가 사용될때 이 잠금 모드가 사용된다. 일반적으로 오직 읽기를 수행하거나, 갱신이 없는 명령어를 수행할때는 이 모드를 획득한다고 보면 된다.ROW SHAREEXCLUSIVE, ACCESS EXCLUSIVE 모드와 충돌이 난다. SELECT FOR UPDATE 명령시에 타겟이 되는 테이블에 이 잠..
-
[Postgresql] 오브젝트 변경 작업Postgresql / PPAS/운영 2015. 1. 20. 19:13
ALTER-- 컬럼 추가ALTER TABLE books ADD publication date;-- 컬럼 삭제ALTER TABLE books DROP publication;-- 컬럼 default값 추가ALTER TABLE books ALTER COLUMN id SET DEFAULT nextval('books_idx');-- 컬럼 default값 제거ALTER TABLE books ALTER id DROP DEFAULT;-- 컬럼 NOT NULL 세팅ALTER TABLE books ALTER COLUMN id SET NOT NULL;-- 컬럼 NOT NULL 제거ALTER TABLE books ALTER COLUMN id DROP NOT NULL;-- 테이블 이름 변경ALTER TABLE books REN..