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 경합 시간을 단축시켜 좋은 성능      을 보장함. 이에 따른 부작용도 ..

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 (Defaul..

DA/튜닝 2019.08.21

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

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