[DATABASE] ORACLE/SQL Tuning12 TABLE ACCESS 패턴 분석 쿼리 Table Access 패턴을 이용한 SQL 튜닝. 특정 테이블의 엑세스 패턴을 분석하여 인덱스 생성 가이드시 활용 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 1.. 2023. 1. 18. Random I/O 최소화 (인덱스 컬럼추가 & 인덱스만 읽고 처리) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 -- ############################################################################ -- Random 액세스 발생량 줄이기 (SQL 튜닝은 Random I/O 와의 전쟁 이다) -- -- 테이블 액세스 횟수 줄인다. -- -- 1. ROWID 정렬을 통해 CF 높이기 -- 2. 인덱스 컬럼 추가 및.. 2022. 11. 25. 4. 수평적 탐색 최적화 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 12.. 2022. 10. 31. 데이터베이스 성능 튜닝 3대 핵심 요소 1. 라이브러리 캐시 최적화 (1) 커서공유 - 리터럴 SQL 확인 쿼리 2. 데이터베이스 Call 최소화 3. I/O 효율화 및 버퍼캐시 최적화 (가장 중요) ※ 논리적 I/O를 줄이는 방법 (1) 수직적 탐색 최적화 : 인덱스 Rebuild (2) 수평적 탐색 최적화 : 수평적 탐색의 선택도 향상 (sequential 액세스의 선택도를 높인다) (3) Random I/O 최소화 : Random 액세스 발생량을 줄인다 - Clustering Factor : ROWID 정렬을 통해 CF 높이기 - 인덱스 컬럼추가 & 인덱스만 읽고 처리 2022. 10. 5. 3. 커서공유 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 12.. 2022. 10. 5. 2. SQL Hint (힌트) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 12.. 2022. 9. 29. 1. SQL 분석 도구 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 12.. 2022. 9. 28. [Oracle] SQL 수행통계 확인 (Top-N SQL) Oracle DBMS SQL 성능 튜닝 대상 추출시 활용. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 1.. 2022. 8. 19. 인덱스 컬럼 좌변 가공 제거 인덱스 컬럼 좌변 가공 제거 사례 정리 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -- ################################################## -- 인덱스 컬럼 좌변 가공 제거 사례 -- -- 거래일자 DATE Type -- ################################################## -- :1 -> 20220714 -- :2 -> 20220715 -- AS-IS WHERE TO_CHAR(거래일자, 'YYYYMMDD') BETWEEN :1 AND :2 -- TO-BE WHERE 거래일자 BETWEEN TO_DATE(:1 ||'00:00:00', 'YYYY/MM/DD HH24:MI:SS') AND TO_DATE(:2 |.. 2022. 7. 15. Single Block I/O 성능 측정 현재 시스템의 Index Single Block I/O 성능 측정 1 2 3 4 5 6 7 8 9 10 11 12 13 14 select e.event , e.total_waits "총대기횟수" , round(e.time_waited_micro/1000000) "총대기시간(s)" , round(e.time_waited_micro/e.total_waits/1000,2) "평균대기시간(ms)" , (case when event = 'db file scattered read' then p.value end ) multiblock_read_count from v$system_event e, v$parameter p where e.event in ('db file scattered read','db file se.. 2022. 6. 15. 이전 1 2 다음