전체 글
-
[hierarchy] query tuningPostgresql / PPAS/Query tuning 2022. 9. 15. 16:36
결과 AS-IS 실행 완료. 총 쿼리 실행시간: 6 secs 294 msec. 15 로우가 영향받았음. TO-BE 실행 완료. 총 쿼리 실행시간: 211 msec. 15 로우가 영향받았음. - AS-IS PLAN - 노드 별 병목 구간 - TO-BE PLAN - 노드 별 병목 구간 - 원본 쿼리 WITH TMP_QD_POLICY AS ( SELECT '010101' AS TOT_GENRE UNION ALL SELECT '010103' AS TOT_GENRE UNION ALL SELECT '010107' AS TOT_GENRE UNION ALL SELECT '010117' AS TOT_GENRE UNION ALL SELECT '010130' AS TOT_GENRE UNION ALL SELECT '01013..
-
[PGA] ORA-04036 관리Oracle 2022. 9. 13. 14:11
KILL SESSION for sid=(1996, 47010): Reason = alter system kill session Mode = KILL HARD SAFE -/-/- Requestor = USER (orapid = 195, ospid = 18183, inst = 2) Owner = Process: DIA0 (orapid = 21, ospid = 19193) Result = ORA-0 1. PGA 조회 1.1 V$PGASTAT SELECT * FROM V$PGASTAT; The output of this query might look like the following: NAME VALUE UNIT -------------------------------------------------------..
-
Query ID 작성 가이드Postgresql / PPAS/modeling 2022. 8. 29. 19:03
쿼리를 식별하기 위한 용도로 모든 SQL 쿼리에 쿼리아이디를 입력하여야 하고, 입력함에 있어 표준 방법을 가이드 함. 쿼리아이디 개요 정의 SQL 쿼리를 식별하기 위한 목적으로 쿼리별로 쿼리 상단에 주석형태로 중복되지 않게 부여한 아이디 쿼리아이디 작성 취지 슬로우 쿼리에 캡쳐된 쿼리들을 신속히 식별하여 관계자와 빠른 커뮤니케이션을 통해 신속하고 정확하게 문제를 해결하기 위함 쿼리 튜닝 및 검수 요청시 업무 단위로 사용하고 중복 요청을 막기 위함 작성 규칙 3. 예시 /* SVC.VodLookup.SeriesCategoryInfoAbCatJpaRepository.findAbAlbByAlbumIds.01 */ SELECT album_id,album_name,series_no FROM imcsuser.pt_..
-
[완료]/*stillCut.base.stillCutListPageData*/Postgresql / PPAS/Query tuning 2022. 8. 29. 15:21
개선 효과 튜닝 전 : 5초 튜닝 후 : 0.1초 개선 효과 : 99.98% 문자열 like 검색에 대해 GIN 인덱스 생성 문자열 검색 부분 sql 변경 CREATE INDEX idx_pt_la_album_info_04 ON imcsuser.pt_la_album_info USING GIN(album_name imcsuser.gin_trgm_ops); * 원본 쿼리 SELECT /*stillCut.base.stillCutListPageData*/ TOTAL_CNT , RNUM , SCREEN_TYPE , ALBUM_ID , ALBUM_NAME , ONAIR_DATE , SERIES_NO , TO_CHAR(TO_TIMESTAMP(ALBUM_DATE,'YYYYMMDDhh24miss'), 'YYYY-MM-DD..
-
[완료]/* jobQuesues.distr.getJobQueuesRcmInfoListForPage */Postgresql / PPAS/Query tuning 2022. 8. 29. 15:16
AS-IS Total query runtime: 20Min ~ TO-BE Total query runtime: 0.7 Sec 개선효과 99.9% 개선 포인트 AS-IS WHERE C.CONTENTS_ID = D.ALBUM_ID ORDER BY C.JOB_DATE DESC TO-BE 위의 Order By를 해당 위치로 옮겨줌 추가적으로 PARTITION_NM 을 구할수 있으면 같이 넣어줌 AND A.JOB_DATE BETWEEN '20220817'||'0000000000' AND '20220824'||'2359599999' AND A.partition_mm = '08' ORDER BY JOB_DATE DESC * 원본 쿼리 SELECT /* jobQuesues.distr.getJobQue uesRcmInf..
-
[완료]/* contentMonitoring.distr.selectAlbumInfoDistrList */Postgresql / PPAS/Query tuning 2022. 8. 29. 15:09
AS-IS Total query runtime: 3 secs 66 msec. TO-BE Total query runtime: 1 secs 992 msec. 개선효과 45.15% Tuning Parameter set work_mem=300000 개선 포인트 AS-IS -> Sort (cost=10000097295.57..10000098308.15 rows=405034 width=151) (actual time=307.620..372.198 rows=324506 loops=3)" " Output: a_1.insert_date, a_1.album_id, a_1.album_name, a_1.genre_large, a_1.genre_mid, a_1.genre_small, a_1.series_id_imcs, a_1..
-
[완료] /*modifySchedule.base.selectContentList */Postgresql / PPAS/Query tuning 2022. 8. 29. 14:41
AS-IS Total query runtime: 3 secs 65 msec. TO-BE Total query runtime: 465 msec. 개선효과 92.15% AS-IS Plan NODE -> Index Scan using pk_pt_la_album_info on imcsuser.pt_la_album_info aif (cost=0.42..0.52 rows=1 width=111) (actual time=0.003..0.003 rows=0 loops=519621)" " Output: aif.album_id, aif.album_name, aif.album_date, aif.series_id, aif.series_name, aif.series_no, aif.onair_date, aif.onair_date_..
-
[완료] /* index.base.getNewRegIndexAlbumList */Postgresql / PPAS/Query tuning 2022. 8. 29. 14:31
AS-IS 2.5 sec TO-BE 1 sec 개선 포인트 api에서 set WORK_MEM=102400 CREATE INDEX idx_pt_la_asset_info_05 ON imcsuser.pt_la_asset_info USING btree (album_id,screen_type); 생성으로 1 Sec * 원본 쿼리 /* index.base.getNewRegIndexAlbumList */ /*CREATE OR REPLACE FUNCTION pg_temp.FN_GETSTRPOS(STR TEXT) RETURNS INT AS $RETVAL$ DECLARE RETVAL INT; BEGIN SELECT STRPOS(STR, (REGEXP_MATCHES(STR,'[^0-9]'))[1]) INTO RETVAL; ..