DA/튜닝 7

[DA/튜닝] PostgreSQL 튜닝 관련 Parameter

PostgreSQL (v.10.15) 파라미터 # 쿼리 플랜 방법 설정 변수 - enable_bitmapscan (Default : on) 쿼리 플래너의 bitmap-scan plan types 사용을 활성화 또는 비활성화한다. - enable_gathermerge (Default : on) 쿼리 플래너의 gather merge plan types 사용을 활성화 또는 비활성화한다. - enable_hashagg (Default : on) 쿼리 플래너의 hashed aggregation plan types 사용을 활성화 또는 비활성화한다. - enable_hashjoin (Default : on) 쿼리 플래너의 hash-join plan types 사용을 활성화 또는 비활성화한다. - enable_inde..

DA/튜닝 2021.01.08

[DA/튜닝] MySQL & MariaDB 튜닝 관련 Parameter

MariaDB Parameter - query_cache_type (Default : 0) 쿼리 캐싱을 사용할지 결정하는 파라미터 // 0 : OFF, 1 : ON (SQL_NO_CACHE 힌트 제외), 2 : DEMAND (SQL_CACHE 힌트 적용 쿼리만) MySQL Parameter - innodb_adaptive_hash_index (Default : ON) [v.5.5이상] 사용빈도가 높은 데이터를 내부적으로 판단하여 b-tree 인덱스를 adaptive hash index로 바꿔 사용 adaptive hash index로 바뀌면 b-tree 인덱스를 사용할 때보다 mutex 경합 시간을 단축시켜 좋은 성능 을 보장함. 이에 따른 부작용도 존재. // 참고 : https://gywn.net/2..

DA/튜닝 2020.08.25

[DA/튜닝] Oracle 튜닝 관련 Parameter

ORACLE PARAMETER // ※ Parameter는 Hint보다 우선권이 낮음. # Index 제어 - OPTIMIZER_INDEX_CACHING (Default : 0) Index가 메모리에 캐싱되어 있을 확률을 의미. 80 ~ 95가 적당. - OPTIMIZER_INDEX_COST_ADJ (Default : 100) Index Cost를 조정하는 역할을 함. 즉, 값을 50으로 바꾸게 되면 Index Cost를 1/2로 감소시킴. 그만큼 Index Scan이 선택될 확률을 높임. 5 ~ 10이 적당. # CBQT(Cost Based Query Transformation) 제어 - _OPTIMIZER_COST_BASED_TRANSFORMATION (Default : Linear) CBQT의 동작..

DA/튜닝 2019.08.21

[DA/튜닝] 다중행 결과 값을 단일행으로 변환

ORACLE // 11gR2 이상 버전에서는 listagg 함수를 쓰면 편하게 표현가능. // 11gR2에서 해당 함수를 쓰면 plan은 볼 수 없는 듯함. select a.table_name, a.index_name, listagg(b.column_name,', ') within group (order by b.column_name) as columns from user_indexes a, user_ind_columns b where a.table_name = b.table_name and a.index_name = b.index_name and a.table_name = '[테이블 명]' group by a.table_name,a.index_name; // 11gR2 이전에서는 아래와 같은 방식을 사..

DA/튜닝 2019.07.15

[DA] Static SQL 과 Dynamic SQL

많은 이들이 Static SQL 과 Dynamic SQL을 혼동하여 지칭해서 'SQL 전문가 가이드' 책의 내용을 빌어 글을 작성해봅니다. - Static SQL Static SQL은 String 변수에 담지 않고 코드 사이에 직접 기술한 SQL문을 말합니다. 위 캡처 사진과 같이 변수에 담지 않고 바로 실행했을 때의 SQL을 의미합니다. 많은 트랜잭션이 몰리는 증권이나 금융 쪽 DB에서는 Static SQL로 작성한다고 합니다. '친절한 SQL 튜닝' 이나 '오라클 성능 고도화 원리 2'에서 옵션 조건을 중요시 다루는 이유가 바로 여기에 있다고 볼 수 있습니다. - 조시형 강사님曰 - Dynamic SQL Dynamic SQL은 String 변수에 담아서 기술하는 SQL문을 말합니다. 즉, Applic..

DA/튜닝 2019.06.07